1

好吧,我知道我的错误及其含义。但是,有人可以告诉我如何将一组非字符串参数写入文件吗?

产生错误的代码:

with open('count.txt', 'w') as count:
for k,v in makeddict.items():
    print "MID -",k + ':', Counter(v)
    readout = "MID -",k + ':', Counter(v)
    count.writelines(readout)

Counter当我尝试将行写入文件的这种标准形式时,我完全理解这是我错误的原因。所以我尝试将我的标准输出写入文件(见下文)。

尝试修复我的代码:

for k,v in makeddict.items():
    print "MID -",k + ':', Counter(v)
    sys.stdout = open('count.txt', 'w')

这行得通,我有一行(标准输出的第一行)写入我的文件。但是,我想在我的count.txt文件中查看所有其他 19 行。

那么谁能告诉我如何让我的代码将我所有的标准输出打印到一个文件中?我应该在那里扔一个.append吗?(现在试试这个)。

或者,当文件具有非字符串参数(如Counter.

4

2 回答 2

0

除了 Thomas Orozco 的回答之外,您的readout变量包含一个元组,而不是一个字符串,所以我怀疑结果不是您想要的。您可能想尝试以下方法:

readout = "MID -" + k + ':' + Counter(v)

这将尝试用所有部分制作一个字符串。但是,对于没有__str__or__repr__方法的对象,它将失败。

于 2012-12-20T02:16:16.927 回答
0

sys.stdout = open('count.txt', 'w')截断文件,因此在调用它时会清除之前所做的每个更改。

你应该这样做:

sys.stdout = open('count.txt', 'w')
for k,v in makeddict.items():
    print "MID -",k + ':', Counter(v)

或者,

with open('count.txt', 'w') as f:
    for k,v in makeddict.items():
        print >> f, "MID -",k + ':', Counter(v)
于 2012-12-20T02:05:28.920 回答