列表文件,在Python2.7中作为单个列表导入

2024-04-20 06:00:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个程序中创建了一个文本文件,它以伪随机顺序输出数字1到25,例如:

[21, 19, 14, 22, 18, 23, 25, 10, 6, 9, 1, 13, 2, 7, 5, 12, 8, 20, 24, 15, 17, 4, 11, 3, 16]

现在我有了另一个python文件,它应该读取我之前创建的文件,并使用排序算法对数字进行排序。你知道吗

问题是我似乎不知道如何将我先前创建的列表作为列表读入文件。你知道吗

真的有办法吗?或者我最好重写我的输出程序,这样我就可以把输入转换成一个列表?你知道吗


Tags: 文件程序算法列表排序顺序数字文本文件
2条回答

如果您的文件看起来像:

21
19
14
22
18
23
...

使用此选项:

with open('file') as f:
    mylist = [int(i.strip()) for i in f]

如果它看起来真的像[21, 19, 14, 22...]这样的列表,那么有一个简单的方法:

with open('file') as f:
    mylist = list(map(int, f.read().lstrip('[').rstrip(']\n').split(', ')))

如果您的文件严格符合规范。例如,它看起来像[ 21,19, 14 , 22...]。下面是使用regex的另一种方法:

import re
with open('file') as f:
    mylist = list(map(int, re.findall('\d+', f.read())))

如果不想更改当前脚本的输出,可以使用ast.literal_eval()

import ast
with open ("output.txt", "r") as f:
    array=ast.literal_eval(f.read()) 

相关问题 更多 >