2014-01-10 200 views
-1

我想从文本文件创建和写入新文件。 我面临的挑战是如何获取特定列的内容。读取文本文件并从特定内容写入文件

输入文件被搞乱了。

例如,

input.txt(制表符分隔的:列的总数跨行不同)

CATEGORY  NEIGHBOUR  NUMBER1 NUMBER2  TOTAL 
city   Washington 30  50   80 
county  mountain  in  seattle  10  4   30 
community  church  men  15   5   4 

output.txt(我想什么来创建每行3列。)

CATEGORY      NUMBER1  TOTAL  
city Washington    30   80 
county mountain in seattle 10   30 
community church men   15   4 

我该怎么做才能这样写呢?

+2

虽然定义良好,但是您还没有真正向我们展示过迄今为止尝试过的东西吗?你可以这样做吗? – BlackVegetable

+0

[Python解析CSV正确]的可能重复(http://stackoverflow.com/questions/12296585/python-parse-csv-correctly) –

+0

你真的关心列的左对齐,还是会制表符分隔输出足够了吗? – DSM

回答

1

你可以试试这个python脚本:

file_in = open('input.txt', 'r') 
file_out = open('output.txt', 'w') 

for line in file_in: 
    line = line.rstrip() 
    line = line.split('\t') 

    CATEGORY = ' '.join(line[:-3]) ##set variable as beginning of line 
            ##to before 3rd last column 
    NUMBER_1 = line[-3] ##set variable as 3rd last column 
    TOTAL = line[-1] ##set variable as last column 

    file_out.write('%s\t%s\t%s\n' % (CATEGORY, NUMBER_1, TOTAL)) 

file_in.close() 
file_out.close() 
  • 运行脚本由:python <ABOVE_SCRIPT>.py(假定input.txt中是在同一个目录中该脚本)
  • 输出将在标题行中返回“NEIGHBOR”output.txt ...你总是可以擦除它
0

尝试这样:

lines = open('in_file', 'r').readlines() 
for line in lines: 
    fields = line.split('\t') 
    ... 
相关问题