Python中有没有办法读取txt文件,删除每行的最后6个字符并用相同的内容覆盖旧文件,而不是每行最后6个字符?
我试过这样的事情:
with open(dat, "r+") as fp:
for line in fp:
line = line[:-6]
fp.write(line+"\n")
但这只会给我一个奇怪的文件,在错误的地方有多个条目和数字。
另外
with open(dat, "r+") as fp:
for line in fp:
line = line[:-6]
fp.write(line+"\n")
不起作用。当我这样做时,整个文件都是空的。
是否有一种聪明的方法可以在不进行更改的情况下执行此操作,将所有内容写入单独的文件中?
答案 0 :(得分:1)
您需要将更改的字符附加到临时列表,然后在再次写入之前将文件指针移回到开头:
with open(dat, "r+") as fp:
temp_list = []
for line in fp:
line = line[:-6]
temp_list.append(line)
fp.seek(0, 0)
fp.write("\n".join(temp_list))
我希望这会有所帮助