拆分Python函数未按预期工作

时间:2014-11-09 17:56:13

标签: python

如果我有一个格式为以下信息的文件(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

我做错了什么?

2 个答案:

答案 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