将整数写入文件

时间:2013-06-10 17:10:15

标签: python file-io integer

我很难将整数写入文件。这是我的情况。我有一个文件,我们称之为'idlist.txt'。它有多列并且相当长(10,000行),但我只关心第一列数据。

我正在使用:

将它加载到python中
import numpy as np
FH = np.loadtxt('idlist.txt',delimiter=',',comments='#')

# Testing initial data type
print FH[0,0],type(FH[0,0])
>>> 85000370342.0 <type 'numpy.float64'>

# Converting to integers
F = [int(FH[i,0]) for i in range(len(FH))]
print F[0],type(F[0])
>>> 85000370342 <type 'long'>

如您所见,数据必须是整数。我现在要做的是将此列表的条目写为另一个文件的第一列(实际上是整个文件中的唯一列),我们可以将其重命名为“idonly.txt”。以下是我尝试这样做的方法:

with open('idonly.txt','a') as f:
    for i in range(len(F)):
        f.write('%d\n' % (F[i]))

这显然没有产生所需的输出 - 当我打开文件'idonly.txt'时,每个条目实际上都是一个浮点数(即 - 85000370342.0)。这里到底发生了什么,以及为什么要将整数写入文件如此复杂的任务?我从这里找到了字符串格式化的想法:How to write integers to a file,但它没有解决我的问题。

2 个答案:

答案 0 :(得分:1)

好吧,看来这完全是我的错。当我打开文件时,我正在使用模式'a',这意味着追加。事实证明,我第一次把它写到文件中时我做错了,从那以后我就一直在将正确的答案附加到那个上,而不是向下看,因为它是一个非常长的文件。

此处的参考是在python中处理文件时可以使用的所有模式:http://www.tutorialspoint.com/python/python_files_io.htm。请仔细选择。

答案 1 :(得分:0)

尝试使用:

f.write('{}'.format(F[i]));