我正在尝试从大型文本文件(约3GB)中删除不需要的字符。我正在尝试删除整个文件中不需要的正斜杠和反斜杠。我想将Tilde放在两个字之间,它充当分隔符。该文件的格式如下:

Cornet~Chris Tyle
Cornet\~Warren Vache
Cornet~Roger Webster
Cornet~\Grimethorpe Coll//iery Band
Cornet/~Daniel Rollston
Cornet~Murley Silver Band
Chocolate~Chocolate liquor
Chocolate~Theobroma cacao
Chocolate~Meso/america


因此,在上面的示例中,我想删除所有的反斜杠/正斜杠,以便使单词可读(同时保持波浪号)。我会为此使用Python Regex表达式吗?另一种可能性是删除包含斜线的行,但我想把它留作最后的选择。

**编辑:对不起,忘记提及一件事!一些行如下所示:

Chocolate~
Chocolate~Theobroma cacao
         ~Mesoamerica


除了删除正斜杠和反斜杠之外,我还必须删除Tilde之前或之后的所有为空的行**

谢谢你的帮助!

最佳答案

简单,只需使用str.replace()

注意双\\,它不是替换双反斜杠,而是一个反斜杠转义了另一个

码:

def clean():
    with open('example.txt', 'r') as f:
        outputs = []
        for line in f:
            output = line.replace('/', '')
            output = output.replace('\\', '')
            output = output.replace('\n', '')
            outputs.append(output)
    return outputs

print(clean())


输出:

['Cornet~Chris Tyle', 'Cornet~Warren Vache', 'Cornet~Roger Webster', 'Cornet~Grimethorpe Colliery Band', 'Cornet~Daniel Rollston', 'Cornet~Murley Silver Band', 'Chocolate~Chocolate liquor', 'Chocolate~Theobroma cacao', 'Chocolate~Mesoamerica']

08-18 23:35