Python - 让 os.popen 匹配一个字符串?

问题描述

我正在尝试对 .doc 文件运行 grep 以获取字符串并将其与宏的证据进行匹配以检测它。

我有

filename = raw_input("file name: ") <--- using malicIoUs.doc

    s1 = os.popen("grep '/vbaProject\|/vbaData' " + filename).read()
    s2 = 'Binary file ' + filename + ' matches'

    if s1 == s2:
        print("true")
    else:
        print("false")

如果我跑:

    if s1 == s2:
        print("true")
    else:
        print("false")

    print(s1)
    print(s2)

我得到以下输出

false
Binary file malicIoUs.doc matches

Binary file malicIoUs.doc matches

文本匹配,我什至尝试执行 s1 = str(s1) and s2 = str(s2) 但仍然出错。

提前致谢。

解决方法

根据您的评论,结果中多了一个换行符。

我通常建议在比较它们之前从空格中去除结果。在你的情况下,我会这样做:

s1 = os.popen("grep '/vbaProject\|/vbaData' " + filename).read().strip()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...