Python 用字符串检查文件内容
你好!我有一个这样的脚本:
import os
import stat
curDir = os.getcwd()
autorun_signature = [ "[Autorun]",
"Open=regsvr.exe",
"Shellexecute=regsvr.exe",
"Shell\Open\command=regsvr.exe",
"Shell=Open" ]
content = []
def read_signature(file_path):
try:
with open(file_path) as data:
for i in range(0,5):
content.append(data.readline())
except IOError as err:
print("File Error: "+ str(err))
read_signature(os.getcwd()+'/'+'autorun.inf')
if(content==autorun_signature):
print("Equal content")
else:
print("Not equal")
它打印出“不相等”,然后我尝试了这个方法:
import os
import stat
curDir = os.getcwd()
autorun_signature = "[Autorun]\nOpen=regsvr.exe\nShellexecute=regsvr.exe\nShell\Open\command=regsvr.exe\nShell=Open"
content = ""
def read_signature(file_path):
try:
with open(file_path) as data:
content = data.read()
except IOError as err:
print("File Error: "+ str(err))
read_signature(os.getcwd()+'/'+'autorun.inf')
if(content==autorun_signature):
print("Equal content")
else:
print("Not equal")
它也打印出“不相等”!我想把autorun.inf文件的内容存储在脚本中,每次找到这样的文件时,我想检查它的内容是否相等,但我做不到,有人能帮我吗?autorun.inf的内容是:
[Autorun]
Open=regsvr.exe
Shellexecute=regsvr.exe
Shell\Open\command=regsvr.exe
Shell=Open
2 个回答
1
这可能是因为Windows系统中的换行符是\r\n
,而不是\n
。另外,你还需要对"\"
这个符号进行转义,所以应该用"\\"
来表示。
1
在Windows系统中,换行符是\r\n
,而在Linux系统中,换行符是\n
。
所以你可以试着把\n
替换成\r\n
。