【发布时间】:2021-06-12 23:41:20
【问题描述】:
我正在尝试从多个 txt 文件中替换行中的一些第一个字符并使用此代码,但输出错误:
for filename in glob.glob('./labels/**/*.txt', recursive=True):
with open(filename, 'r') as f:
original_lines = f.readlines()
with open(filename, 'w') as out:
for line in original_lines:
if line.startswith('0'):
line0 = line
out.write(line0)
if line.startswith('1'):
line1 = line
out.write(line1)
if line.startswith('2'):
line2 = line
out.write(line2)
if line.startswith('3'):
line3 = line
out.write(line3)
if line.startswith('5'):
line4 = '4' + line[1:]
out.write(line4)
if line.startswith('7'):
line5 = '5' + line[1:]
out.write(line5)
if line.startswith('9'):
line6 = '6' + line[1:]
out.write(line6)
if line.startswith('10'):
line7 = '7' + line[1:]
out.write(line7)
if line.startswith('11'):
line8 = '8' + line[1:]
out.write(line8)
if line.startswith('12'):
line9 = '9' + line[1:]
out.write(line9)
如果我有这样的文件:
0 0.2 0.4 0.8
12 0.1 0.1 0.25
7 0.66 0.80 0.91
我希望输出是:
0 0.2 0.4 0.8
9 0.1 0.1 0.25
5 0.66 0.80 0.91
【问题讨论】:
-
如果一行以 '12' 开头, .startswith('1') 和 .startswith('12') 都为真,这可以解释您的部分问题。
-
是的,这是问题之一,我通过使用 line.split(' ') 解决了,谢谢。
标签: python python-3.x file-manipulation