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
,你正在阅读纯文本...
我建议写 lis
t 而不要 []
这样你就可以使用 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(";")
应该是一样的
我有一个名为 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
,你正在阅读纯文本...
我建议写 lis
t 而不要 []
这样你就可以使用 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(";")
应该是一样的