Python 用字符串检查文件内容

0 投票
2 回答
1173 浏览
提问于 2025-04-17 02:07

你好!我有一个这样的脚本:

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

撰写回答