有抱负的python newb(2个月)。我正在尝试创建一个程序,将信息插入.txt文件的每行的两个特定位置,实际上在该过程中创建了一个新文件。
源文件中的信息是这样的:
1,340.959,859.210,0.0010,VV53
18abc,34099.9590,85989.2100,0.0010,VV53
00y46646464,34.10,859487.2970,11.4210,RP27
输出将是:
1,7340.959,65859.210,0.0010,VV53
18abc,734099.9590,6585989.2100,0.0010,VV53
00y46646464,734.10,65859487.2970,11.4210,RP27
每行不同,数百行。我要寻找的特定标记是逗号的第一个和第二个事件(,)。在第一个和第二个逗号之后,需要添加这些内容。当您看到代码时,您会知道我的意思。
我已经到了以下目的:该程序找到了正确的位置并插入了我需要的东西,但在新文件中却不写超过1行。我尝试调试并查看发生了什么"引擎盖下",那里的一切都很好。
很多报废代码和下巴握在后来我仍然卡住了一周前。
tl; dr 代码仅输出1行到新文件,需要数百个。
f = open('test.txt', 'r')
new = open('new.txt', 'w')
first = ['7']
second = ['65']
line = f.readline()
templist = list(line)
counter = 0
while line != '':
for i, j in enumerate(templist):
if j == ',':
place = i + 1
templist1 = templist[:place]
templist2 = templist[place:]
counter += 1
if counter == 1:
for i, j in enumerate(templist2):
if j == ',':
place = i + 1
templist3 = templist2[:place]
templist4 = templist2[place:]
templist5 = templist1 + first + templist3 + second + templist4
templist6 = ''.join(templist5)
new.write(templist6)
counter += 1
break
if counter == 2:
break
break
line = f.readline()
templist = list(line)
f.close()
new.close()
如果我正确理解您的样本并正确地代码,这可能是一种有效的方法:
with open('test.txt', 'r') as infd, open('new.txt', 'w') as outfd:
for line in infd:
fields = line.split(',')
fields[1] = '7' + fields[1]
fields[2] = '65' + fields[2]
outfd.write('{}n'.format(','.join(fields)))