python读取txt中的数据问题

用python读取txt列表的某一列,然后想把这列放在一个list中,怎么弄?

filename = r'a.txt'
alist = []
lines = open(filename,'r').readlines()
alist = [line.strip().split(',')[3] for line in lines ]#字段以逗号分隔,这里取得是第4列

追问

Area 100.00
span 10.00
TC 10.00
RC 10.00
按照你的写法,输出是:
span 10.00 这个样子。。我只想要后边的数字。

追答

亲,你这个是空格分隔的吗?只用第二列是吧!

filename = r'a.txt'
alist = []
lines = open(filename,'r').readlines()
alist = [line.strip().split()[1] for line in lines ]#字段以空格分隔(如果是tab,请换为\t),这里取得是第2列

追问

不是空格分开的,是用access制作的表格。。现在只是初步的表格,最后可能需要更多列的数据,我现在只是先练练调用一列的。。

追答

嗯。可以在导出为文本格式时设定分隔符。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-03
import itertools

def iterreadcolumnfromfile(
        filehandle, 
        spliter=',', 
        col=0, 
        skiprow=0,
        convertor=None, 
        ):
    """打开的文本文件filehandle
        是用spliter分隔的表格; 
        跳过skiprow行,
        读取其中第col列的数据
        用convertor转换读到数据 (默认的None不进行任何转换)
    """
    convertfunc = convertor or (lambda x: x)
    for rowid, columns in enumerate(itertools.imap(
            lambda ln: ln.strip().split(spliter),
            filehandle)):
        if rowid < skiprow:
            continue
        try:
            yield convertfunc(columns[col])
        except:
            yield None

filename = 'recorder.tsv'
with open(filename, 'rt') as handle:
    datas = [x for x in iterreadcolumnfromfile(handle, 
            spliter='\t', 
            col=1,
            skiprow=0,
            convertor=float,
            )]

相似回答