我有点卡在这个上 - 我必须删除不包含逗号的行(删除),并删除(删除)包含多个逗号的行。我必须用Python编写脚本。我在下面列出了一个文件样本:
Anarchism,Taoism
Anarchism,Laozi
Anarchism,Zhuang Zhou
brigand
Anarchism,Diogenes of Sinope
Anarchism,Cynicism philosophy
Anarchism,Zeno of Citium
Anarchism,Stoicism
感谢!!!!
答案 0 :(得分:4)
所以你想保留只有一个逗号的行
>>> lines = """Anarchism,Taoism
... Anarchism,Laozi
... Anarchism,Zhuang Zhou
... brigand
... Anarchism,Diogenes of Sinope
... Anarchism,Cynicism philosophy
... Anarchism,Zeno of Citium
... Anarchism,Stoicism""".split("\n")
>>> [x for x in lines if x.count(",") == 1]
['Anarchism,Taoism', 'Anarchism,Laozi', 'Anarchism,Zhuang Zhou', 'Anarchism,Diogenes of Sinope', 'Anarchism,Cynicism philosophy', 'Anarchism,Zeno of Citium', 'Anarchism,Stoicism']
>>>
答案 1 :(得分:1)
从文件中读取行并将带有1个逗号的行写入结果文件。说“无政府主义,道教”
无政府主义,老子
无政府主义,庄周
强盗
无政府主义,Sinope的Diogenes
无政府主义,犬儒主义哲学
无政府主义,Citium的芝诺
无政府主义,Stoicisms”
存储在“test.txt”文件中。
input = open("c:\\test.txt", "r")
output = open("c:\\result.txt", "w")
for line in input:
if (line.count(",") == 1):
print (line)
output.writelines(line)
input.close()
output.close()
答案 2 :(得分:0)
import re
p = re.compile(ur'((?:[^,^\n]*\,){2,}[^,^\n]+\n)|(?![^,^\n]*\,)(?<=\n)([^,^\n]+\n)|^(?![^,^\n]*\,)([^,^\n]+)|(?![^,^\n]*\,)(?<=\n)([^,^\n]+)$', re.DOTALL)
str = u"Anarchism,Taoism \nAnarchism,Laozi \nAnarchism,Zhuang Zhou \nbrigand \nAnarchism,Diogenes of Sinope \nAnarchism,Cynicism philosophy \nAnarchism,Zeno of Citium \nAnarchism,Stoicism"
str = re.sub(p,'', str)
print str
输出:
Anarchism,Taoism
Anarchism,Laozi
Anarchism,Zhuang Zhou
Anarchism,Diogenes of Sinope
Anarchism,Cynicism philosophy
Anarchism,Zeno of Citium
Anarchism,Stoicism