我有一个类似的文件
237501.jpg#0 Two
237501.jpg#1 Teddy
237501.jpg#2 Large
237501.jpg#3 A teddy
237501.jpg#4 an image
237501.jpg#0 Two
237501.jpg#1 Teddy
237501.jpg#2 Large
237501.jpg#3 A teddy
237501.jpg#4 an image
我需要在每行的每个数字后面添加制表符,使其像一样
237501.jpg#0 Two
237501.jpg#1 Teddy
237501.jpg#2 Large
237501.jpg#3 A teddy
237501.jpg#4 an image
我的代码是
import os
inputFile = open("output1.txt", "r")
exportFile = open("output10.txt", "w")
for line in inputFile:
new_line = line.replace("#0", '#0 ')
exportFile.write(new_line)
但没能抓住每一行的号码我得到的结果是
237501.jpg#0 Two
237501.jpg#1 Teddy
237501.jpg#2 Large
237501.jpg#3 A teddy
237501.jpg#4 an image
您可以使用enumerate
input.txt
:
237501.jpg#0 Two
237501.jpg#1 Teddy
237501.jpg#2 Large
237501.jpg#3 A teddy
237501.jpg#4 an image
237501.jpg#0 Two
237501.jpg#1 Teddy
237501.jpg#2 Large
237501.jpg#3 A teddy
237501.jpg#4 an image
代码:
inputFile = open("input.txt", "r")
exportFile = open("output.txt", "w")
patterns = ["#"+str(idx) for idx in range(5)]
for line in inputFile:
for pattern in patterns:
if pattern in line:
new_line = line.replace(pattern, pattern+' '*3)
exportFile.write(new_line)
break
inputFile.close()
exportFile.close()
output.txt
结果:
237501.jpg#0 Two
237501.jpg#1 Teddy
237501.jpg#2 Large
237501.jpg#3 A teddy
237501.jpg#4 an image
237501.jpg#0 Two
237501.jpg#1 Teddy
237501.jpg#2 Large
237501.jpg#3 A teddy
237501.jpg#4 an image
您可以使用regex
,遍历每一行,为每一行找到#1, #2,..
的子字符串,并将其替换为substring + 't'
import re
op = ''
pattern = re.compile('#d+')
for line in file:
num = pattern.findall(line)[0]
op += line.replace(num, num+ 't')
print(op)
输出:
237501.jpg#0 Two
237501.jpg#1 Teddy
237501.jpg#2 Large
237501.jpg#3 A teddy
237501.jpg#4 an image
您并没有真正指定第一列中可以包含哪些类型的数据,但似乎只有第一个空格才有意义。我会把每个空间划分开来,只打印出部分,跳过中间的部分。
with open('input.txt') as fd:
for line in fd:
parts = line.partition(' ')
print('t'.join(parts[0:3:2]), end='')