如何仅从python中的文件中删除某些内容

问题描述

我正在尝试从 .txt 文件中删除所有问号 ('?')。 我尝试标记所有内容并将其打印回如下:

with open('my.txt','r') as f:
  tokenized = f.split()
for i in len(tokenized):
  if tokenized[i] == '?':
    tokenized.remove('?')
with open('my.txt','w') as f:
    f.write(' '.join(tokenized))

但它不会删除所有问号,如果有任何换行符或空格超过 1,它会删除它们。

解决方法

with open("my.txt","r") as f:
    content = f.read().split("?")
with open("my.txt","w") as f:
    f.write("".join(content))

您也可以使用 replace

,

您可以使用 string.replace

with open('my.txt','r') as f:
  content = f.read()

with open('my.txt','w') as f:
    f.write(content.replace('?',''))

您的解决方案的问题在于您使用 string.split 而没有为 separator 提供任何参数。默认情况下,它将针对任何空格(包括换行符或多个空格)。但是你只加入一个空格,所以最终结果可能会有所不同。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...