我想读取文本文件中的特定行并将这些元素存储在列表中。
我的文本文件看起来像这样
'item1' 'item2' 'item3'
我总是以每个字母作为元素的列表结束
我尝试了什么
line = file.readline()
for u in line:
#do something
答案 0 :(得分:3)
line = file.readline()
for u in line.split():
# do stuff
这假设项目按空格分割。
答案 1 :(得分:3)
按空格分割线条,然后将它们添加到列表中:
# line = ('item1' 'item2' 'item3') example of line
listed = []
line = file.readline()
for u in line.split(' '):
listed.append(u)
for e in listed:
print(e)
答案 2 :(得分:2)
你所拥有的内容将读取整行,然后循环遍历该行中的每个字符。您可能想要做的是将该行拆分为3个项目。如果它们用空格分隔,你可以这样做:
line = file.readline() # Read the line in as before
singles = line.split(' ') # Split the line wherever there are spaces found. You can choose any character though
for item in singles: # Loop through all items, in your example there will be 3
#Do something
您可以通过将各种函数串在一起来减少行数(和变量),但为了便于理解,我将它们分开。
答案 3 :(得分:1)
您可以尝试:
for u in line.split():
假设每个项目之间有空格。否则,您只需迭代str
,然后按字符迭代。
您可能还想这样做:
u = u.strip('\'')
摆脱'
答案 4 :(得分:1)
我使用with
,re
并且基本上在撇号之间取任何东西......(这适用于其中包含空格的字符串(例如:item 1
{{1但是,显然不会捕获嵌套或字符串转义序列。)
item 2
答案 5 :(得分:0)
如果你想要列表中所有行的字符,你可以试试这个。
这使用双列表理解。
with open('stackoverflow.txt', 'r') as file:
charlist = [c for word in file.readline().split(' ') for c in word ]
print(charlist)
如果你想摆脱一些char,你可以应用一些过滤器,例如;我不想要char ='在我的清单中。
with open('stackoverflow.txt', 'r') as file:
charlist = [c for word in file.readline().split(' ') for c in word if(c != "'")]
print(charlist)
如果这个双列表理解看起来很奇怪就是这个。
with open('stackoverflow.txt', 'r') as file:
charlist = []
line = file.readline()
for word in line.split(' '):
for c in word:
if(c != "'"):
charlist.append(c)
print(charlist)