0

我想获取一个带有换行符的长数字序列的文本文件,即类似

38482406847387
85869153438194
96531040384827
43157689643163

但要大得多,并将其转换为可以读取的字符串

[3,8,4,8,...,1,6,3]

这样我就可以对其进行迭代、操作、可视化等等。

我已经查看了该open()函数,但到目前为止,我只能将文件分成单独的行。我知道我可以使用for循环来遍历整个文档的巨大字符串并以这种方式形成一个列表,但随后我得到 '/n' 并且到处都出现空格,这是不可取的。

对于上下文,我从网络上抓取了一个包含 pi 的一些荒谬数字的文本文件,我认为通过它查找模式、绘制数字分布、转换为 ASCII 等会很有启发性和趣味性废话。我认为这对我来说是一种有趣的方式来学习更多关于 Python 的知识。

4

4 回答 4

0
with open("/path/to/file") as f:
    print [int(x) for x in f.read() if x.isdigit()]

这更短。

于 2013-07-18T17:19:53.493 回答
0

对于小文件:

with open('path/to/file') as infile:
    answer = list(int(i) for i in ''.join(line.strip() for line in infile))

对于较大的文件:

answer = []
with open('path/to/file') as infile:
    for line in infile:
        answer.extend([int(i) for i in line.strip()])
于 2013-07-18T17:13:23.097 回答
0
import re

print re.findall('\d', open('file.txt', 'r').read())
于 2013-07-18T17:08:56.760 回答
0

如果您将所有数字作为字符串获取,则可以使用

# here, digits is the numbers as a string including the \n character
list = [digit for digit in digits.replace('\n', '')]
于 2013-07-18T17:14:52.873 回答