我必须编写一个程序,从文件中读取并打印一个包含name,lastname列表的列表。到目前为止,除了正确的打印信息之外,我已经能够做到这一切:
def main():
file = open("users.txt", "r")
data = file.read()
data2 = data.split("\n")
for line in data2[0:]:
a = line.split("|")
print(a)
main()
而不是像我需要的那样打印[['name1','last1'],['name2','last2'],['name3','last3']],而是打印出来:
['name1', 'last1']
['name2', 'last2']
['name3', 'last3']
在users.txt文件中,信息为:
name1|last1
name2|last2
name3|last3
答案 0 :(得分:0)
file_obj = open('names.txt')
names = []
for name in file_obj.readlines():
names.append(name.replace('\n','').split('|'))
print str(names)
如果这是[['name1', 'last1'], ['name2', 'last2'], ['name3', 'last3']]
你想要它只是打印列表的字符串表示
答案 1 :(得分:0)
以下是执行此操作的代码:
def main():
f = open("users.txt", "r")
data = f.read()
lst = [line.split('|') for line in data.split()]
print lst
main()
答案 2 :(得分:0)
试试这个:
//workflow/*[not(*)]
答案 3 :(得分:0)
您正在迭代文件的行,并在每条行上打印,因此最终打印的内容当然是......每一行(而不是 all正如您所期望的那样行。
要做到这一点,您需要先收集您的行,您可以通过填充列表来完成:
lines = []
with open('user.txt', 'r') as f:
data = f.read()
for line in data.split('\n'):
lines.append(line.split('|'))
或者更简洁,理解:
with open('user.txt', 'r') as f:
lines = [line.split('|') for line in f]
打印生成的lines
列表将具有您期望的格式,即行列表,每行都是字段列表。
答案 4 :(得分:0)
您的split
语句会列出一个列表,这就是为什么你会得到这样的行:
['name1', 'last1']
如果您想存储或打印列表列表,可以执行以下操作:
names = list()
for line in data2[0:]:
a = line.split("|")
names.append(a)
print(names)
更好的是,我们可以使用with
使文件阅读更加清晰:
def main():
names = list()
with open("users.txt", "r") as myfile:
for line in myfile:
names.append(line.split('|'))
print(names)