Python - 将文本文件中的字符串存储到变量中

时间:2014-07-08 10:09:07

标签: python string loops

我想要一个脚本,将输入文件中每行的第一个单词存储到变量中。

当前代码仅存储姓氏。

def func(file): 
  global user 
  with open(file) as iFile: 
    for line in iFile: 
    string = line.split(',') 
    user = string[0]

func(sys.argv[1]) 
print user

文本文件输入为:

string1,string2,string3
string1,string2,string3
string1,string2,string3

我希望变量user能够存储文本文件中每一行的所有string1。

3 个答案:

答案 0 :(得分:1)

缩进问题。

这将解决它。我也更改了你的func,这样你就不再使用全局了,而是从列表中返回一个带有用户的生成器。

这是一种更好的做法,更节省内存。

def func(file): 
  with open(file) as iFile: 
    for line in iFile: 
        string = line.split(',') 
        yield string[0]

for user in func(sys.argv[1]) 
    print user

答案 1 :(得分:1)

我推荐这个

def func(path):
    with open(path) as _file:
        return [s.split(',')[0] for s in _file]

user = func(sys.argv[1])
print user

答案 2 :(得分:0)

我会这样做:

user = []
def func(file): 
  with open(file) as iFile: 
    for line in iFile: 
      user.append(line.split(',')[0])

func(sys.argv[1]) 
print user

它会在列表中存储您将为该函数提供的每一行的“第一个字符串”。顺便说一下,Matt PsyK的解决方案效率更高!