Python 在os.system或os.popen错误中使用百分比登录

Python 在os.system或os.popen错误中使用百分比登录,python,Python,我正试图通过使用用户定义的字符串%打开一个带有exe的文件,这对我来说是行不通的。我试过os.system和os.popen。我一直收到这个 TypeError:不支持%:“file”和“str”的操作数类型 我能做些什么使它工作 def showhelp(): defaulteditor=“notepad.exe” 打印“[*]要使用哪个文本查看器?[默认:记事本]” 其中=原始输入(“\n\n\n为记事本键入n,或指定program.exe>”) 如果是哪一个!=“n”: os.popen(

我正试图通过使用用户定义的字符串%打开一个带有exe的文件,这对我来说是行不通的。我试过os.system和os.popen。我一直收到这个
TypeError:不支持%:“file”和“str”的操作数类型

我能做些什么使它工作

def showhelp():
defaulteditor=“notepad.exe”
打印“[*]要使用哪个文本查看器?[默认:记事本]”
其中=原始输入(“\n\n\n为记事本键入n,或指定program.exe>”)
如果是哪一个!=“n”:
os.popen('notepad./help.txt')
其他:
os.popen(“%r”)%(其中)
试试看

相反


%
格式化运算符需要左侧的格式字符串和右侧的参数。此外,如果只有一个参数,则不需要括号。

也许这有助于回答您的问题:

>>> def printy(string):
    print string


>>> printy("hello %s" % "world")
hello world
>>> printy("hello %s") % "world"
hello %s

Traceback (most recent call last):
  File "<pyshell#278>", line 1, in <module>
    printy("hello %s") % "world"
TypeError: unsupported operand type(s) for %: 'NoneType' and 'str'
>>> 
def printy(字符串): 打印字符串 >>>printy(“你好%s”%“世界”) 你好,世界 >>>printy(“你好%s”)%%“世界” 您好%s 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 printy(“你好%s”)%%“世界” TypeError:不支持%的操作数类型:'NoneType'和'str' >>> 如您所见,您没有在正确的位置包含%运算符或其补充项

您甚至可以查阅以下文档:

还包括在python附带的python帮助文档中。

如果您使用而不是不推荐的方式进行调用,则可以避免此问题,并有一个更干净的程序

>>> def printy(string):
    print string


>>> printy("hello %s" % "world")
hello world
>>> printy("hello %s") % "world"
hello %s

Traceback (most recent call last):
  File "<pyshell#278>", line 1, in <module>
    printy("hello %s") % "world"
TypeError: unsupported operand type(s) for %: 'NoneType' and 'str'
>>>