如果我有一个格式为以下信息的文件(users.txt):
x y z(t)
x y z(t)
如何编写一个读取文件(users.txt)的python函数,并使用split
函数将文件的每一行分解为三个变量:
who
的 x
where
的{{1}}
y
when_and_time
和z(t)
到屏幕,格式为print
或变量为who on where at when_and_time
到目前为止我所拥有的是:
x on y at z(t)
它提示我提供更多命令,此时我再次按Enter键并收到以下内容:
user_info = open("~/users.txt").read()
for line in user_info:
positions = line.split(',')
who = positions[0]
where = positions[1]
when_and_time = positions[2]
print(who + " on " + where + " at " + when_and_time) # I press enter at this point
我做错了什么?
答案 0 :(得分:3)
这里的问题是你正在做split(",")
,它会将字符串拆分为逗号字符。由于您似乎已使用空格格式化了字符串,因此不会将其拆分到任何位置,因此您只能在列表中获得一个元素。您可能希望在没有参数的情况下使用split()
来拆分任何空格。
答案 1 :(得分:1)
如果逐行读取文件会更好,那么你可以拆分空格:
f=open('your_file')
for x in f:
x=x.split() # now here x contain all variables that are separated by space
# do your stuff with x