我正在尝试创建一个只与文本文件的数字非空行“同步”列表的函数

时间:2013-07-26 07:07:32

标签: python list text python-3.x

我正在编写一个程序,它从指定的文本文件中读取数字(忽略空行和非数字行),每个行都在各自的行上,并将每个文件作为单独的条目写入列表。基本上,该函数不仅将内容附加到列表中,而且还将列表与内容同步。

我尝试过的一些事情:

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保持为空。我在这里做错了什么?

1 个答案:

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