我想要一个脚本,将输入文件中每行的第一个单词存储到变量中。
当前代码仅存储姓氏。
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。
答案 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的解决方案效率更高!