Python 列表迭代未按预期工作

Python list iterate not working as expected

我有一个名为 list.txt 的文件:

['d1','d2','d3']

我想遍历列表中的所有项目。这是代码:

deviceList = open("list.txt", "r")
deviceList = deviceList.read()
for i in deviceList:
    print(i)

这里的问题是,当我运行代码时,它会拆分所有字符:

% python3 run.py
[
'
d
1
'
,
'
d
2
'
,
'
d
3
'
]

好像所有项目都被认为是1个字符串?我认为需要解析?请让我知道我错过了什么..

这不是最干净的解决方案,但如果您的 .txt 文件始终只是“[x,y,z]”格式,它就可以了。

deviceList = open("list.txt", "r")

deviceList = deviceList[1:-1]
deviceList = deviceList.split(",")

for i in deviceList:
    print(i)

这会获取您的字符串,去掉“[”和“]”,然后用逗号分隔整个字符串并将其变成一个列表。正如其他用户所建议的那样,可能有比文本文件更好的方法来存储此列表,但此解决方案将完全满足您的要求。希望这对您有所帮助!

只是因为你没有list,你正在阅读纯文本...

我建议写 list 而不要 [] 这样你就可以使用 split() 函数。

这样写文件:d1;d2;d3

并使用此脚本获取 list

f = open("filename", 'r')
line = f.readlines()
f.close()
list = line.split(";")

如果你需要文件中的[],只需像这样添加一个strip()函数

f = open("filename", 'r')
line = f.readlines()
f.close()
strip = line.strip("[]")
list = strip.split(";")

应该是一样的