所以我有这个非常长的.txt文件,其中包含从0到100,000(含)的所有无序整数。
.txt之前
142142
142421
45454
355
etc...
经过一些操作后,我能够成功实现从这些数字生成数组到字符串列表的目标。
arr = open('/Users/macroot/Desktop/data.txt')
data = []
for line in arr:
data.append(line)
data
Out[ ]: ['142142\n',
'142421\n',
'45454\n',
'355\n',
'etc...\n']
此外,我甚至想出我可以删除新的行标记并将每个元素转换为整数。
data = list(map(lambda x: int(x.rstrip()), data))
data
Out[ ]: [142142,
142421,
45454,
355,
etc...]
奇妙!现在我可以将它放入合并排序算法并计算一些反转!但等等,我的问题是什么?
当然有一个更好的内置方法可以读取文件并自动执行这些修改,对吧?
答案 0 :(得分:1)
当然有一个更好的内置方法可以读取文件和 自动做这些修改,对吧?
由于您的文件占用了很多行,因此最好逐行读取内容而不是整个内容。但您可以使用列表理解来简化此操作。
with open('/Users/macroot/Desktop/data.txt') as f:
array = [int(line) for line in f]
此外,如果您使用 numpy 库,则可以应用
array = np.genfromtxt('/Users/macroot/Desktop/data.txt', dtype=np.int32)
返回生成器。