Python 3.x 用正则表达式删除标点符号无效

Python 3.x 用正则表达式删除标点符号无效,python-3.x,Python 3.x,我编写了一个脚本来删除几个文本文件中的标点符号,但我看到输出仍然有标点符号。也没有错误消息。有谁能指导我如何使脚本工作 import os import re directory = 'C:\\Users\\User\\Desktop\\test1' os.chdir('C:\\Users\\User\\Desktop\\test1') for filename in os.listdir(directory): if filename.endswith(".txt"):

我编写了一个脚本来删除几个文本文件中的标点符号,但我看到输出仍然有标点符号。也没有错误消息。有谁能指导我如何使脚本工作

import os
import re

directory = 'C:\\Users\\User\\Desktop\\test1'
os.chdir('C:\\Users\\User\\Desktop\\test1')

for filename in os.listdir(directory):
    if filename.endswith(".txt"):
        f = open(filename, 'r')

def remove_punctuation(lines):
    new_lines = []
    for line in lines:
        new_line = re.sub(r'[^\w\s]', '', line)
        if new_line != '':
            new_lines.append(new_line)


        with open(filename, 'w') as out:
            out.writelines(new_lines)
脚本修改为如下所示,但文本输出仍然没有更改,即标点符号仍然保留

import os
import re

directory = 'C:\\Users\\User\\Desktop\\test1'
os.chdir('C:\\Users\\User\\Desktop\\test1')


for filename in os.listdir(directory):
    if filename.endswith(".txt"):
        f = open(filename, 'r')

def remove_punctuation(line):
        new_lines = []
        for line in lines:
            new_line = re.sub(r'[^\w\s]', '', line)
            if new_line != '':
                new_lines.append(new_line)

        with open(filename, 'w') as out:
            out.writelines(remove_punctuation)

在你的剧本里。您正在尝试匹配没有点的字符串,并将此匹配替换为空字符串。因此,当它能够工作时,它应该只显示点而不显示内容。正如我理解你的问题,你正在试图删除所有要点

这应该可以完成任务re.sub(“\”,“,”行)


您似乎没有实际调用
remove\u标点符号
我在第一篇文章中修改了脚本,但文本输出仍然有标点符号。如果要求实际上只是删除点,您根本不需要正则表达式。但要求是删除所有标点符号。
import re
line = "This .is. a test."
new_line = re.sub("\.", "", line)
print new_line