2014-07-08 70 views
0

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

当前代码只存储姓氏。

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来存储所有字符串1的对从文本文件中的每一行。

+0

你压痕是不正确,则可能需要纠正。接下来,你在代码中混淆了'user'和'username'。最后但并非最不重要的,你是否想要一个*列表*的字符串? –

+0

很抱歉,更正了'用户'和'用户名'。是的,一个清单将起作用。不太确定,嘿嘿。这是新的。 – Eric1989

+0

使用户列表'user.append(string [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 
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 

它在列表中的每一行,你会提供给函数的所有的“第一个”存储。顺便说一下,马特PsyK的解决方案是完全更有效率!

1

我推荐这

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

user = func(sys.argv[1]) 
print user 
相关问题