如何从文件到列表读取整数?

时间:2014-04-21 23:54:34

标签: python list python-3.x

def make_number_list(a_file):

     number_list= []

     for line_str in a_file:
         line_list = line_str.split()
         for number in line_list:
             if number != " ":
                 number_list.append(number)
         return number_list

opened_file = open(input("Name of input file: "))
a_file_list = make_number_list(opened_file)

print(a_file_list)
print("Length: ", len(a_file_list))

我试图将(最终)1000个整数值从文件读入列表..然后找到它们的最大值,最小值和第i个值。但是,这不能读取列表(我只是使用一个测试列表,它是TextEdit中的一个文件,是一串由一个空格分隔的随机数)。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

# assumes Python 3.x
def read_nums(fname):
    with open(fname) as inf:
        return [int(i) for i in inf.read().split()]

def main():
    fname = input("Name of input file: ")
    nums = read_nums(fname)
    print("Read {} numbers".format(len(nums)))

if __name__=="__main__":
    main()

答案 1 :(得分:0)

我不确定输入文件中的数字是如何出现的。尽管如此,您可以对代码进行一些更改:

  • return语句移出循环。
  • 检查number是否存在的更好方法是:

    if number.isdigit():
    

这给了你:

def make_number_list(a_file):
    number_list= []
    for line_str in a_file:
        line_list = line_str.split()
        for number in line_list:
            if number.isdigit():
                number_list.append(number)
    return number_list