文本在python中重新定制

时间:2013-05-20 08:51:52

标签: python perl

我有一个文本文件,其中有数千行像这样的格式(a,b,c,d,e)(这里,a是6位数字,b是3位字母代码,c是日期,d是浮动number和e是-1,0或1)我想用这种格式(b,c,d)重新设置它。 例如(345678,' ABC',' 2010-01-01',0.123,' -1')=> (' ABC',' 2010-01-01',0.123)

我只是不知道从哪里开始? 在python如果我将行分配给变量,那么必须做什么?分裂还是其他什么?

我对perl也有一些了解,所以任何这些twlo langs中的任何帮助都将受到赞赏 - ))

text = open('text.txt', 'w')

for line in text:
    #
    # 
    #

4 个答案:

答案 0 :(得分:3)

这样的东西?

import ast
with open("in.txt") as infile, open("out.txt", "w") as outfile:
    for line in infile:
        contents = ast.literal_eval(line)
        outfile.write(str(contents[1:4]))

答案 1 :(得分:2)

,\s() char类拆分行,从2,3,4个位置获取值,并在其周围放置()

perl -F'[,\s\(\)]+' -ape '$_ = join ", ", @F[2,3,4]; $_ = "($_)"' text.txt

答案 2 :(得分:0)

你需要这些内容: -

for line in text:
    line = line.strip('()')
    fields = line.split(',')
    print "(%s,%s,%s)" % (fields[1], fields[2], fields[3])

如果您使用的是类似unix的系统,您可能需要考虑使用sed或awk来执行相同的内容。

答案 3 :(得分:0)

for line in text
    s = line.split(',')
    print("({0},{1},{2})".format(s[1], s[2], s[3]))