问题提示:跳过以下文件的第5行,将所有文件内容写入新文件
测试文件:
line1
line2
line3
line4
line5
line6
line7
新文件:
line1
line2
line3
line4
line6
line7
代码:
testFile = 'C:/Users\Karan\Documents\\test.txt'
newFile = 'C:/Users\Karan\Documents\\newtext.txt'
for num, line in enumerate(testFile, 1):
if num != 5:
newFile.write(line)
Errors:
Traceback (most recent call last):
File "C:/Users/Karan/AppData/Roaming/JetBrains/PyCharm2020.1/scratches/scratch_1.py", line 7, in <module>
newFile.write(line)
AttributeError: 'str' object has no attribute 'write'
我知道这是最后一行的问题,但我整天都在努力,我真的希望有一双新的眼睛来观察它
newFile
是要打开的文件的名称,而不是通过实际打开该文件名创建的文件对象实际上错误是“str没有属性…”,因为您使用的对象是字符串
您需要使用
open()
首先打开文件,然后才能读写它们更新:
正如@cdlane的评论所述,在不必要时将整个文件写入内存不是一个好的做法。而是逐行写入文件:
我相信你的代码比一些答案更正确,尤其是在你使用
enumerate()
时。这里讨论的是文件打开以及可能的文件名字符串:相关问题 更多 >
编程相关推荐