从读取文件中删除列表中的引号和空格

时间:2016-05-04 00:54:57

标签: python-2.7

所以在我正在做的一个项目中,我正在尝试读取一堆行,并将每行数字数据放入一个数字列表中。我遇到的问题是,而不是期望的结果:

[1749, 58.0, 62.6, 70.0, 55.7, 85.0, 83.5, 94.8, 66.3, 75.9, 75.5, 158.6, 85.2]

当我尝试将读取行放入列表时,我得到了这个:

['1749', '', '', '', '58.0', '', '62.6', '', '70.0', '', '55.7', '', '85.0', '', '83.5', '', '94.8', '', '66.3', '', '75.9', '', '75.5', '158.6', '', '85.2']

所有我想知道的是如何使数字成为常规数字,而没有''围绕它们以及如何让数字之间的条目消失。我用来获得当前结果的代码是:

sun_file = open('sunspot_data.txt', 'r')

line = sun_file.readlines()

x = line[3].rstrip('\n').split(' ')

list2 = list(x)

print list2

关于如何进行的任何想法?

1 个答案:

答案 0 :(得分:0)

试试这个

with open('sunspot_data.txt') as sun_file:
    for _ in range(3): # skip first three lines
        sun_file.readline()

    for line in sun_file:
        numbers = line.rstrip().split()
        new_list = map(float, numbers)

        print new_list
  • 默认模式是' r',所以你不需要它,除非你想成为 显式
  • 使用with块打开文件。他们自动 在您完成使用后,请为您关闭该文件。
  • rstrip by 默认拆分换行符(和其他空白字符)和split 自动按空格分割。
  • split()已经返回了一个列表,因此无需浪费时间使用list(x)
  • 复制它
  • 如果你只想要第4行而你的文件很大,那么最好逐行阅读,直到你到达第4行而不是阅读整个文件