首先,我想说我是Python的新手。
我将尽力解释我的问题。
该代码的主要目的是能够读取,修改和复制txt文件。
为此,我想将问题分为三个不同的步骤。
1-将前N行复制到新的txt文件(CopyFile)中,就像在原始文件(OrigFile)中一样
2-访问要更改其他数字的特定行。我想将此行添加到CopyFile。
3-将OrigFile的其余部分从第2点的行复制到文件的末尾。
目前,我已经可以使用下一个代码执行步骤1:
with open("OrigFile.txt") as myfile:
head = [next(myfile) for x iin range(10)] #read first 10 lines of txt file
copy = open("CopyFile.txt", "w") #create a txt file named CopyFile.txt
copy.write("".join(head)) #convert list into str
copy.close #close txt file
第二步,我的想法是直接访问我感兴趣的txt行,并识别要更改的浮点数。代码:
line11 = linecache.getline("OrigFile.txt", 11) #opening and accessing directly to line 11
FltNmb = re.findall("\d+\.\d+", line11) #regular expressions to identify float numbers
考虑到需要在第11行中指定它,我的问题来了,当我需要将FltNmb换成新的时。我该如何实现?
答案 0 :(得分:0)
打开两个文件,并在递增行计数器的同时顺序写入每一行。 第11行替换浮点数的条件。其余各行的内容未经修改:
with open("CopyFile.txt", "w") as newfile:
with open("OrigFile.txt") as myfile:
linecounter = 1
for line in myfile:
if linecounter == 11:
newline = re.sub("^(\d+\.\d+)", "<new number>", line)
linecounter += 1
outfile.write(newline)
else:
newfile.write(line)
linecounter += 1