当值在日志文件中时,Python脚本在日志文件中找不到值
下面的代码用于查找流程中使用的任何xls或csv文件。.log文件包含扩展名为的完整路径,并且肯定包含多个带有“xls”或“csv”的值。然而,Python找不到任何东西……有什么想法吗?奇怪的是,当我复制日志文件的内容并将其粘贴到另一个记事本文件并将其另存为日志时,它就会工作当值在日志文件中时,Python脚本在日志文件中找不到值,python,logging,Python,Logging,下面的代码用于查找流程中使用的任何xls或csv文件。.log文件包含扩展名为的完整路径,并且肯定包含多个带有“xls”或“csv”的值。然而,Python找不到任何东西……有什么想法吗?奇怪的是,当我复制日志文件的内容并将其粘贴到另一个记事本文件并将其另存为日志时,它就会工作 infile=r"C:\Users\me\Desktop\test.log" important=[] keep_words=["xls","csv"] with open(infile,'r') as f:
infile=r"C:\Users\me\Desktop\test.log"
important=[]
keep_words=["xls","csv"]
with open(infile,'r') as f:
for line in f:
for word in keep_words:
if word in line:
important.append(line)
print(important)
你必须换线
for line in f:
到
您在打开的字节文件中进行了python搜索,而不是在他的内容中,甚至是在他的行中(在列表中,就像readlines方法一样)
我希望我能帮上忙(很抱歉我的英语不好)。我能解决它…编码问题
with io.open(infile,encoding='utf16') as f:
日志文件中有什么?能否提供一个在
test.log
中找不到但应该找到的行的示例?2020年4月16日10:10:26 AM:0150[..\ExternalData\Districing U.s.Sales Summary\OS Migration Contracts.xlsx]无法使用您发布的日志行重现您的结果。您的代码对我有效。@DavidDenni即使有您在“答案注释”部分发布的完整日志文件,您的代码也有效。是否有其他可能遗漏的细节?也许这不是完整的代码?您能在代码中添加一些调试日志并运行它吗?打印行
可能文件是在r
模式下打开的,这是一种文本模式。而for line in f
迭代文件中的行,而不是“字节”。但要将这些行作为一个iterable来读取,您需要使用此方法,但它将迭代文件打开的表示。不管文件是以哪种模式打开的,都必须使用f作为打开(文件,模式),因为他就是这样。否。对于以文本模式打开的文件,f
的迭代器将覆盖文件中的行。阅读文档:伙计,我真的试过了,并返回了以下错误:`` UnicodeDecodeError:'utf-8'编解码器无法解码位置0处的字节0xca:无效的继续字节``您应该检查您的测试文件是否确实是文本文件。问题中的文件是文本文件。您在答案中发布的代码将起作用,因为它与OPs代码相同,只是效率较低。而且OPs代码已经在为我工作了。
with io.open(infile,encoding='utf16') as f: