gpt4 book ai didi

python - 从文件中读取以不同方式编写的列表

转载 作者:太空宇宙 更新时间:2023-11-04 08:59:01 24 4
gpt4 key购买 nike

我需要一种方法来以多种不同方式读取存储在文件中的列表。我正在尝试考虑用户可能想到的将列表存储在文件中的所有方式,并正确地解释它。

这是一个示例输入文件,其中的列表以不同的方式编写。

# in_file.dat

# List 1 (enclosing brackets, comma separated, spaces after commas)
[0.5, 0.2, 0.6, 0.9, 1.5]

# List 2 (enclosing parenthesis, comma separated, no spaces or some spaces after commas)
(0.5,0.2,0.6,0.9, 1.5)

# List 3 (enclosing keys, mixed commas and semi-colons, mixed no-spaces and spaces)
{0.5,0.2,0.6;0.9;1.5}

# List 4 (single item)
[0.6]

# List 5 (space separated elements)
[2.3 5. 0.6 1.2 0.0 3.1]

每一行都应该被正确地读成一个列表,结果是:

ls_1 = [0.5, 0.2, 0.6, 0.9, 1.5]
ls_2 = [0.5, 0.2, 0.6, 0.9, 1.5]
ls_3 = [0.5, 0.2, 0.6, 0.9, 1.5]
ls_4 = [0.6]
ls_5 = [2.3, 5., 0.6, 1.2, 0.0, 3.1]

我读取文件的常用方式是

# Read data from file.
with open('in_file.dat', "r") as f_dat:
# Iterate through each line in the file.
for line in f_dat:
# Skip comments
if not line.startswith("#") and line.strip() != '':
# Read list stored in line.
ls_X = ??

有没有一些通用的方法可以用来强制 python 将行解释为列表?

最佳答案

如果您确定每行只有数字序列,请改用 re

import re
lines=[]
for l in f_dat:
if l and l[0]!='#':
lines.append([float(i) for i in re.findall('[0-9.]+',l)])
print lines

希望这就是您要找的。

关于python - 从文件中读取以不同方式编写的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27402626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com