如何在Python中写入.txt文件?

时间:2018-03-23 19:47:42

标签: python

我想将以下信息写入.txt文件:

D = 68601
w = 1500
NNZ = 205806000
docword = [[    0   170     4]
           [    0  1856     4]
           [    0   838     3]
           ...
           [68601  1982     0]
           [68601  1981     0]
           [68601     0     0]]

这是最终的.txt文件的样子 - 替换数字:

D
W
NNZ
docID wordID count
docID wordID count
docID wordID count
docID wordID count
...
docID wordID count
docID wordID count
docID wordID count

我试过这个:

datafile_path = "/path/to/docword.txt"
with open(datafile_path, 'w+') as datafile_id:
      np.savetxt(datafile_id, data, fmt=['%d','%d','%d'], newline="\n")

还有这个:

with open('/path/to/docword.txt', 'ab') as outfile:
     for data_slice in data:
         np.savetxt(outfile, data_slice, fmt=['%d','%d','%d'])

它需要永远,并没有做我想要的,也保存它作为泡菜不是我想要的。我希望能够打开文本文件,并能够在那里看到相同的格式,一行3行,然后是3列的行。

3 个答案:

答案 0 :(得分:1)

如果您尝试使用numpy.savetxt,则只需传递文件路径即可 - 无需打开文件。 查看函数doc page末尾的示例。 您想要执行以下操作:

datafile_path = "/path/to/docword.txt"
np.savetxt(datafile_path, data, fmt='%d %d %d', newline="\n")

答案 1 :(得分:0)

以下是将数据写入文件的示例代码,这是否符合您的期望?

D = 68601
w = 1500
NNZ = 205806000
docword = [[1, 2, 3], [4, 5, 6]]
text_file = open("Output.txt", "w")
text_file.write(str(D) + '\n')
text_file.write(str(w) + '\n')
text_file.write(str(NNZ) + '\n')
for row in docword:
    for el in row:
        text_file.write(str(el) + '\t')
    text_file.write('\n')
text_file.close()

输出文件内容:

68601
1500
205806000
1   2   3   
4   5   6   

答案 2 :(得分:0)

一个非常简单的方法是使用for循环。虽然numpy必须存在更好的解决方案。

import numpy as np

mat = np.arange(9).reshape(3,3)
n= mat.shape[0]

file = open("file.txt", "w")

for i in range(0, n):
    line = mat[i:i+1]
    file.write(str(line).strip("[").strip("]")+"\n")

file.close()

输出:

0 1 2
3 4 5
6 7 8