首页 > 解决方案 > AttributeError:“str”对象在最后一行没有属性“write”错误,需要洞察力

问题描述

问题提示:通过从以下文件中跳过第 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'

我知道这是最后一行的问题,但是我整天都在努力解决它,并且真的希望有一双新的眼睛来研究它。

标签: pythonstring

解决方案


我相信您在代码中做的比某些答案更正确 - 特别是在您使用enumerate(). 这里有问题的是文件打开,以及可能的文件名字符串:

testFile_name = r"C:\Users\Karan\Documents\test.txt"
newFile_name = r"C:\Users\Karan\Documents\newtext.txt"

with open(testFile_name) as testFile:
    with open(newFile_name, 'w') as newFile:
        for number, line in enumerate(testFile, 1):
            if number != 5:
                newFile.write(line)

推荐阅读