使用python读取txt文件中的列表

使用python读取txt文件中的列表,python,list,Python,List,我是Python的初学者,我正在做这个项目,我有一个包含7列数字的文本文件。我需要编写一个程序,提取第1、6和7列的数据,并在列中打印出来,仅列中的数据。 这是我到目前为止所做的,但似乎有点不对劲。有人能指出我吗 import sys import os import re GC11 = 'NGC4697' base_dirname = '/projects/XRB_Web/abcadmus/499/Lists/' Luminositylist = base_dirname + GC11 +

我是Python的初学者,我正在做这个项目,我有一个包含7列数字的文本文件。我需要编写一个程序,提取第1、6和7列的数据,并在列中打印出来,仅列中的数据。 这是我到目前为止所做的,但似乎有点不对劲。有人能指出我吗

import sys
import os
import re

GC11 = 'NGC4697'

base_dirname = '/projects/XRB_Web/abcadmus/499/Lists/'
Luminositylist = base_dirname + GC11 + '_final_list.txt'

try:
  file = open(Luminositylist, 'r')
except IOError:
  print 'Cannot open: '+Luminositylist

source = [ ]
luminosity = [ ]
luminosityerr = [ ]
for line in file:
   point = line.split()
   a = source.append(int((point[0])))
   b = luminosity.append(float((point[5])))
   c = luminosityerr.append(float((point[6])))
   print a, b, c

看看Python CSV库:,您可能会发现它已经完成了您需要的所有功能。

假设我有一个名为
test.txt的文件,其布局如下:

ABC1234
DEF5678
GHI9101
我能做到

with open('test.txt', 'r') as f:
  out = [[x[0],x[5],x[6]] for x in f.readlines()]
要在
out
中获得如下结果:

[['A', '3', '4'], ['D', '7', '8'], ['G', '0', '1']]
list.append()
返回
None
,因此您的作业没有任何用处

我不确定您为什么需要打印它们并将它们附加到列表中,但请尝试以下方法:

   point = line.split()

   a = int(point[0])
   b = float(point[5])
   c = float(point[6])

   source.append(a)
   luminosity.append(b)
   luminosityerr.append(c)

   print a, b, c

使用具有任意列数的csv(或任何分隔符)文件的解决方案

f = file("myFile", mode="r")
delimiter = "," # comma for csv files

myData = [i.split(delimiter) for i in file.readlines()] # All the data as a nested list
myColumns = [row[0],row[5],row[6] for row in myData] # select your source, lum and lumerr columns
source, luminosity, luminosityerr = zip(*myColumns)

向我们展示您的文件格式。输入是什么,预期输出是什么?谢谢大家的回答!去试试所有的方法!