我有一个脚本,它最终应该从文件中grep一段文本并将其删除,然后对目录中的每个文件重复此操作。但是我在下面写的代码不包括delete语句,因为我不知道如何做到这一点。这篇文章让我觉得我应该把我想保留的所有东西都写进一个新文件。我尝试在p = re.compile(ur'(.)(DDDDD..........)')
行之后插入del p
,这似乎删除了我的一个输入文件。建议?
import sys
import re
import os
PSGDirectory = "~/TestFolder"
for path, dirs, files in os.walk(PSGDirectory):
print path
print dirs
print files
def process (files):
p = re.compile(ur'(.)(DDDDD..........)')
return re.search(p, files)
for root, dirs, files in os.walk(PSGDirectory):
for filename in files:
fullpath = os.path.join(root,filename)
print process (fullpath)
使用re.sub()
来自文档:
import os
import re
def process(file):
with open(file, 'w') as f:
text = f.read()
# Use your regex to grab all matching text:
# For example, to remove all non-digits from a string:
filtered = re.sub(r'D', "", text)
f.write(filtered)
return filtered
def main():
PSGDirectory = "~/TestFolder"
for path, dirs, files in os.walk(PSGDirectory):
print path
print dirs
print files
for root, dirs, files in os.walk(PSGDirectory):
for filename in files:
fullpath = os.path.join(root, filename)
print process(full path)