1

我很难将整数写入文件。这是我的情况。我有一个文件,我们称之为“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)。这里到底发生了什么,为什么将整数写入文件是一项如此复杂的任务?我从这里找到了字符串格式化的想法:如何将整数写入文件,但它并没有解决我的问题。

4

2 回答 2

1

好吧,看来这完全是我的错。当我打开文件时,我使用的是模式“a”,这意味着追加。事实证明,我第一次把它写到一个文件中时我做错了,自从我一直在上面附加正确的答案并且根本没有往下看,因为它是一个非常长的文件。

作为参考,您可以在 python 中处理文件时使用的所有模式:http ://www.tutorialspoint.com/python/python_files_io.htm 。谨慎选择。

于 2013-06-10T17:22:40.933 回答
0

尝试使用:

f.write('{}'.format(F[i]));
于 2013-06-10T17:14:12.093 回答