我写了一个脚本来删除几个文本文件中的标点符号,但我看到输出仍然有标点符号。也没有错误消息。任何人都可以指导我如何使脚本工作吗?
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)
答案 0 :(得分:-1)
在你的脚本中。您正在尝试匹配不带点的字符串,并将此匹配替换为空字符串。因此,当它工作时,它应该只显示点,没有内容。正如我理解你的问题,你试图删除所有要点。
这应该做的工作 re.sub(" \。","",line)
import re
line = "This .is. a test."
new_line = re.sub("\.", "", line)
print new_line