关于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
我该如何编码?
答案 0 :(得分:2)
您也可以使用rsplit()
:
for line in infile:
token, _ = line.rsplit('-', 1)
outfile.write(token + '\n')
答案 1 :(得分:0)
简单find the last instance的' - '并将其剪掉
q = 'MV0346FDG-PFHTGE-CFSGD-22205-C0'
q[:q.rfind('-')]
'MV0346FDG-PFHTGE-CFSGD-22205'
有关文件读/写的信息,请参阅here
答案 2 :(得分:0)
Python字符串有很好的方法可以拆分成较小的字符串,所以不需要搜索字符并对它们进行切片。您可以在交互式终端中查看所有这些方法here,或只需输入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')
答案 3 :(得分:0)
您也可以使用rfind
for line in file:
outfile.write(line[:line.rfind('-')] + "\n")