把test1.txt文件的每一行增加行号(从1开始)后拷贝到一个新的文件中test_new.txt中。
import re
with open('test1.txt', 'r', encoding='utf-8') as f:
lines =f.readlines() # 函数一次读取整个文本文件,但是将文本文件以行为单位将内容处理为一个关于行的列表。
for i in range(len(lines)):
lines[i] = re.sub(r'\d+.', '', lines[i]) # 去除文件中的原有的标号
lines=[str(index1)+"."+temp1.rstrip()+'\n' for index1,temp1 in enumerate(lines,start=128)] # start设置成你想要的开始序号
with open('test_new.txt', 'w', encoding='utf-8') as f:
f.writelines(lines)
这个代码哪里有问题?有没有新的解决办法?
test1.txt内容为:
北京
上海
重庆
输出后新内容为:
1:北京
2:上海
3:重庆
并且到新的文件test_new.txt中表现出来
你的enumerate函数 start 设置的为128,按你的要求应该设置为1.
with open('test1.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
lines = [f"{idx}:{line.strip()}\n" for idx, line in enumerate(lines, start=1)]
with open('test_new.txt', 'w', encoding='utf-8') as f:
f.writelines(lines)
with open("test1.txt", 'r', encoding = 'utf-8') as f1 :
t =[str(i) +'\t' +v for i, v in enumerate(f1.readlines(), start = 120)]
with open("test_new.txt", 'w', encoding = 'utf-8') as f2 :
f2.writelines(t)
lines=[str(index1)+"."+temp1.rstrip()+'\n' for index1,temp1 in enumerate(lines,start=128)]这一行要改一下,整体如下:
import re
with open('D:\\test\\test1.txt', 'r', encoding='utf-8') as f:
lines =f.readlines() # 函数一次读取整个文本文件,但是将文本文件以行为单位将内容处理为一个关于行的列表。
for i in range(len(lines)):
lines[i] = re.sub(r'\d+.', '', lines[i]) # 去除文件中的原有的标号
lines=[str(index1)+":"+temp1.rstrip()+'\n' for index1,temp1 in enumerate(lines,start=1)] # start设置成你想要的开始序号
with open('D:\\test\\test_new.txt', 'w', encoding='utf-8') as f:
f.writelines(lines)
代码格式有问题, 要调整
其实可以打印预览看下效果比较好,调整如下
import re
with open('test1.txt', 'r', encoding='utf-8') as f:
lines = f.readlines() # 函数一次读取整个文本文件,但是将文本文件以行为单位将内容处理为一个关于行的列表。
for i in range(len(lines)):
lines[i] = re.sub(r'\d+.', '', lines[i]) # 去除文件中的原有的标号
lines = [str(index1) + "." + temp1.rstrip() + '\n' for index1, temp1 in enumerate(lines, start=128)] # start设置成你想要的开始序号
# 打印预览
print(lines)
with open('test_new.txt', 'w', encoding='utf-8') as f:
f.writelines(lines)
输出结果如下:
['128.北京\n', '129.上海\n', '130.重庆\n']
如果你在linux环境下,命令行模式一条命令就可以了,个人更喜欢命令行模式
cat -n test1.txt >test_new.txt
使用os.system或者os.popen又或者commands模块直接调用都可以