Python:如何从文本文件中删除所有引号?

3

我有一个文本文件,其中包含带有 '" 引号的引语。这个文本文件的格式是:

"string1", "string2", 'string3', 'string4', ''string5'', etc. 

如何在保留原有文件内容的情况下,移除所有引号('")?

我猜应该是这样的:

with open('input.txt', 'r') as f, open('output.txt', 'w') as fo:
    for line in f:
        fo.write(line.strip())

line.strip() 会以某种方式去除字符串中的引号。还需要做什么吗?


我会使用生成器表达式来过滤引号:''.join(c for c in line if c not in '"\'') - Christian Dean
1
可能是重复问题:https://dev59.com/WGEh5IYBdhLWcg3wpExF 如果这个回答解决了你的问题,请告诉我们。 - Robᵩ
2
你可以使用 replace(),但我想知道这些引号是怎么出现的。希望你不是将 Python 对象写入文本文件,而应该使用 pickle 或类似工具。 - Chris_Rands
@Robᵩ replace() 的问题在于,如下所示的实现方式也会删除括号。 - ShanZhengYang
1个回答

9
你离正确只差一步。不要使用 str.strip(),而是尝试使用 str.replace():
with open('input.txt', 'r') as f, open('output.txt', 'w') as fo:
    for line in f:
        fo.write(line.replace('"', '').replace("'", ""))

恕我直言,@ShanZhengYang,我不相信你。我发布的代码中没有任何删除括号的操作。 - Robᵩ
查看文本文件后,不幸地发现我犯了一个错误。上面的内容已经删除。括号还在。然而,仍有几个引号存在,特别是在附近的括号("string1","string2","string3","string4") - ShanZhengYang
再次恭敬地说,我不相信你。你能提供一个一行的 input.txt 文件吗?当它被传递给上面的三行程序时,会表现出什么样的行为? - Robᵩ
对于这种行为,最好查看整个文本文件。 - ShanZhengYang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接