逐行写入文件?
Writing line by line to a file?
我正在读取一个 .txt
文件来创建一个我称之为 irTable
的字典。它包含我称之为 dId(设备 ID)的密钥,然后是 3 个值、标签、频率、状态。
现在我可以很好地阅读和附加字典,但是我无法理解将这些更改逐行重新写入 .txt 文件的合适方法。
我当前的代码:
def writeFile():
f = open("test.txt","w")
for line in irTable: #irTable being the dictionary where my Key and 3 values are.
print(line, file="test.txt")
f.close()
输出此错误:
print(line, file="test.txt")
AttributeError: 'str' object has no attribute 'write'
作为参考,我的 .txt 文件的格式:
rm1d1,lamp,100001,False
rm1d2,tv,100002,False
rm2d1,lamp,100003,False
那么如何将 'new' 词典写入此文件?
print
的 file
parameter 需要一个打开的文件对象作为参数。您应该传递 f
而不是文件名:
print(line, file=f)
那个,或者你可以使用 f
的 write
方法:
f.write(line)
但是请注意,这不会添加像 print
这样的换行符。需要的话需要手动添加:
f.write(line + '\n')
此外,f.close()
行需要缩进一级。否则,您将在循环的第一次迭代期间关闭文件。当然,最好只使用 with-statement:
def writeFile():
with open("test.txt","w") as f:
for line in irTable:
print(line, file=f)
这将在完成后自动为您关闭文件。
我正在读取一个 .txt
文件来创建一个我称之为 irTable
的字典。它包含我称之为 dId(设备 ID)的密钥,然后是 3 个值、标签、频率、状态。
现在我可以很好地阅读和附加字典,但是我无法理解将这些更改逐行重新写入 .txt 文件的合适方法。
我当前的代码:
def writeFile():
f = open("test.txt","w")
for line in irTable: #irTable being the dictionary where my Key and 3 values are.
print(line, file="test.txt")
f.close()
输出此错误:
print(line, file="test.txt")
AttributeError: 'str' object has no attribute 'write'
作为参考,我的 .txt 文件的格式:
rm1d1,lamp,100001,False
rm1d2,tv,100002,False
rm2d1,lamp,100003,False
那么如何将 'new' 词典写入此文件?
print
的 file
parameter 需要一个打开的文件对象作为参数。您应该传递 f
而不是文件名:
print(line, file=f)
那个,或者你可以使用 f
的 write
方法:
f.write(line)
但是请注意,这不会添加像 print
这样的换行符。需要的话需要手动添加:
f.write(line + '\n')
此外,f.close()
行需要缩进一级。否则,您将在循环的第一次迭代期间关闭文件。当然,最好只使用 with-statement:
def writeFile():
with open("test.txt","w") as f:
for line in irTable:
print(line, file=f)
这将在完成后自动为您关闭文件。