-1

关于 Python 中的行解析,我有一个非常简单的问题。

我有一个包含以下行的文件:

MV0346FDG-PFHTGE-CFSGD-22205-C0

MV0346FDG-PFHTGE-CFSGD-22205-34354-FHHTRW-0

MV0346FDG-PFHTGE-CFSGD-DTRHG-22205-AA1

我需要将这些行保存到一个新文件中,不包括最后一个“-”之后的字符。

结果应如下:

MV0346FDG-PFHTGE-CFSGD-22205

MV0346FDG-PFHTGE-CFSGD-22205-34354-FHHTRW

MV0346FDG-PFHTGE-CFSGD-DTRHG-22205

我该如何编码?

4

4 回答 4

2

你也可以使用rsplit()

for line in infile:
    token, _ = line.rsplit('-', 1)
    outfile.write(token + '\n')
于 2013-11-06T20:48:30.090 回答
0

只需找到'-'的最后一个实例并将其切掉

q = 'MV0346FDG-PFHTGE-CFSGD-22205-C0'
q[:q.rfind('-')]
'MV0346FDG-PFHTGE-CFSGD-22205'

有关文件读/写的信息,请参见此处

于 2013-11-06T20:44:06.897 回答
0

Python 字符串有很好的方法可以分割成更小的字符串,因此无需搜索字符并对其进行切片。您可以在此处查看所有这些方法,或者只需help(str)在交互式终端中输入。

所以:

with open(inpath) as infile, open(outpath, 'w') as outfile:
    for line in infile:
        main, hyphen, last = line.rpartition('-')
        outfile.write(main + '\n')
于 2013-11-06T20:46:27.177 回答
0

rfind你也可以使用

for line in file:
    outfile.write(line[:line.rfind('-')] + "\n")
于 2013-11-06T20:52:44.363 回答