仅读取文本文件的第一列和最后一列,后者使用TAG NAme写入最后一列

时间:2016-01-05 19:32:21

标签: python

我有一个list.txt文件,内容如下:

1535    2015-22-12  0010.dcm
1530    2015-22-12  0013.dcm
1531    2015-22-12  0014.dcm
..
..
..

现在我想只读一行让我们说第一行和第一列和第三列,例如:将1535和oo10.dcm读入两个不同的字符串变量。我将使用os.join从这些变量创建路径。

对文件进行一些操作......

然后在第一行读取.dcm文件的标题后,我想添加带有标记值的第4列。

因此,最后txt文件看起来应该是这样的:

1535    2015-22-12  0010.dcm    lab1
1530    2015-22-12  0013.dcm    lab2
1531    2015-22-12  0014.dcm    lab3
..
..
..

如何在python中执行此操作?

任何提示?

2 个答案:

答案 0 :(得分:1)

import operator
import csv
import os
import string


vals = operator.itemgetter(0,2)
lab = string.Template("lab${n}")

with open('path/to/input') as infile, open('path/to/output', 'w') as fout:
    outfile = csv.writer(fout, delimiter='\t')
    for labnum,row in enumerate(csv.reader(infile, delimiter='\t'), 1):
        num, fname = vals(row)
        fpath = os.path.join(num, fname)
        # do file operations with fpath
        row.append(lab.substitute(n=labnum))

        outfile.writerow(row)

答案 1 :(得分:0)

这是你想要做的吗?

import re

with open('list.txt', 'r') as data:
    for line in data:
        fields = re.split(r' +', line)
        ... do stuff with fields[0] and fields[2] ...
        print(line + ' ' + tag)