我有一个包含57,600,000,000行值的文本文件。这些值位于文本文件的单个列中。它们代表重复2400次的150(列)×160(行)矩阵。我希望完成2个不同的操作,每个操作有3个目标。
操作1(列)
操作2(行)
这一点是打印矩阵列然后是行。我是一个新手python用户,并使用spyder来运行其他脚本。如果您愿意为我编写脚本,请描述我需要替换的内容以获得所需的结果。我查看了其他类似的帖子,但找不到足够相似的帖子,我可以用我有限的知识编辑我的需求。
非常感谢您的期待和任何帮助。
答案 0 :(得分:10)
Python中的文件是迭代器,这意味着它们可以循环,或者应用迭代操作。
例如,要获得每5行,将是:
import itertools
with open(filename, 'r') as f:
fifthlines = itertools.islice(f, 0, None, 5)
for line in fifthlines:
# do something with line
您也可以使用islice()
跳过线条;这里我们跳过10行,然后读10:
for line in itertools.islice(f, 10, 20):
# do something with this 10th line
你可以吞下一系列;因为跳过,然后读取0行引发StopIteration
信号,我们通过使用next()
吞下它并传入默认值来代替:
next(itertools.islice(f, 42, 42), None) # skip 42 lines, don't read more
使用itertools
library并快速浏览Python tutorial,您可以轻松地找出脚本的其余部分。