我根据此主题中专家的评论修改了代码。现在,脚本会读取和写入所有单个文件。该脚本重复,突出显示并写入输出。当前的问题是,在突出显示搜索项的最后一个实例后,脚本将删除每个文件输出中最后一个搜索实例之后的所有剩余内容。
以下是修改后的代码:
import os
import sys
import re
source = raw_input("Enter the source files path:")
listfiles = os.listdir(source)
for f in listfiles:
filepath = source+'\\'+f
infile = open(filepath, 'r+')
source_content = infile.read()
color = ('red')
regex = re.compile(r"(\b be \b)|(\b by \b)|(\b user \b)|(\bmay\b)|(\bmight\b)|(\bwill\b)|(\b's\b)|(\bdon't\b)|(\bdoesn't\b)|(\bwon't\b)|(\bsupport\b)|(\bcan't\b)|(\bkill\b)|(\betc\b)|(\b NA \b)|(\bfollow\b)|(\bhang\b)|(\bbelow\b)", re.I)
i = 0; output = ""
for m in regex.finditer(source_content):
output += "".join([source_content[i:m.start()],
"<strong><span style='color:%s'>" % color[0:],
source_content[m.start():m.end()],
"</span></strong>"])
i = m.end()
outfile = open(filepath, 'w+')
outfile.seek(0)
outfile.write(output)
print "\nProcess Completed!\n"
infile.close()
outfile.close()
raw_input()
答案 0 :(得分:1)
错误消息告诉您错误是什么:
No such file or directory: 'sample1.html'
确保文件存在。或者使用try
语句为其提供默认行为。
答案 1 :(得分:0)
您收到该错误的原因是因为python脚本不知道您要打开的文件所在的位置。
您必须提供文件路径才能打开它,如下所示。我简单地连接source file path+'\\'+filename
并将结果保存在名为filepath
的变量中。现在只需使用此变量在open()
中打开文件。
import os
import sys
source = raw_input("Enter the source files path:")
listfiles = os.listdir(source)
for f in listfiles:
filepath = source+'\\'+f # This is the file path
infile = open(filepath, 'r')
您的代码还有其他一些问题,如果您要打开文件进行读写,则必须使用r+
mode。如果您使用r+
模式打开文件,则在Windows的情况下更多,那么您可能必须在file.seek()
之前使用file.write()
以避免其他问题。您可以阅读使用file.seek()
here。