逐行写入文件?

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' 词典写入此文件?

printfile parameter 需要一个打开的文件对象作为参数。您应该传递 f 而不是文件名:

print(line, file=f)

那个,或者你可以使用 fwrite 方法:

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)

这将在完成后自动为您关闭文件。