我正在编写一个程序,它从指定的文本文件中读取数字(忽略空行和非数字行),每个行都在各自的行上,并将每个文件作为单独的条目写入列表。基本上,该函数不仅将内容附加到列表中,而且还将列表与内容同步。
我尝试过的一些事情:
y = []
#x is textfile, y is list variable
def parse_file(x,y):
with open(x, 'r') as f:
for line in f:
if (line.strip()).isdigit():
y = [int(line.strip())]
parse_file('text.txt',y)
和
y = []
#x is textfile, y is list variable
def parse_file(x,y):
z = []
with open(x, 'r') as f:
for line in f:
if (line.strip()).isdigit():
z.append(int(line))
y = z
print(z)
parse_file('text.txt',y)
这两个导致y
保持为空。我在这里做错了什么?
答案 0 :(得分:1)
y
保持为空的原因是因为您要在本地范围内修改它,而不是全局范围。既然你开始使用y
作为一个空列表,那么只有在它实际包含某些东西时才定义它呢?这是一个有效的例子:
def parse_file(x):
y = []
with open(x, 'r') as f:
for line in f:
if (line.strip()).isdigit():
y.append(int(line.strip()))
return y
y = parse_file(x)