1

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

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

我也有一些关于 perl 的知识,所以对任何这些 twlo 语言的任何帮助都将不胜感激-))

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

for line in text:
    #
    # 
    #
4

4 回答 4

4

像这样的东西?

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]))
于 2013-05-20T08:58:58.217 回答
3

按 char 类分割线,\s(),从 2,3,4 位置取值,然后放在()它们周围。

perl -F'[,\s\(\)]+' -ape '$_ = join ", ", @F[2,3,4]; $_ = "($_)"' text.txt
于 2013-05-20T09:07:41.503 回答
1

您将需要这些方面的东西:-

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

如果您在类似 unix 的系统上,您可能需要考虑使用 sed 或 awk 来做同样的事情。

于 2013-05-20T08:56:31.163 回答
1
for line in text
    s = line.split(',')
    print("({0},{1},{2})".format(s[1], s[2], s[3]))
于 2013-05-20T09:00:03.023 回答