逐行写入文件?

时间:2015-01-06 16:44:45

标签: python file python-3.x dictionary

我正在阅读.txt文件以创建我称为irTable的词典。它包含Key,我将其称为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

那么如何将我的'新'字典写入此文件?

1 个答案:

答案 0 :(得分:4)

print的{​​{3}}期望打开文件对象作为参数。您应该传递f而不是文件名:

print(line, file=f)

那,或者你可以使用write的{​​{1}}方法:

f

但请注意,这不会添加f.write(line) 这样的换行符。如果需要,您需要手动添加它:

print

此外,f.write(line + '\n') 行需要缩小一级。否则,您将在循环的第一次迭代期间关闭该文件。当然,最好只使用file parameter

f.close()

完成后会自动为您关闭文件。