我正在尝试编写一个要求输入文件的脚本,然后在其上运行一些命令。当我运行脚本时,它询问我的文件名,当我给出文件(例如example.bam)时,我收到此错误:
NameError:名称'example.bam'未定义
我尝试过很多东西,但我无法修复它。有人能告诉我出了什么问题吗?
这是我的命令:
from subprocess import call
filename = input ("filename: ");
with open (filename, "r") as a:
for command in ("samtools tview 'a' /chicken/chick_build2.1_unmasked.fa",):
call(command, shell=True)
这是我命令的简短版本:它必须做更多的事情。我也在考虑同时输入4-6个文件(也许这些信息有助于澄清我的意图)。
答案 0 :(得分:3)
input
相当于eval(raw_input(prompt))
。因此,您的脚本当前尝试执行的操作是解释您的输入(在您的情况下为“示例”),并执行就好像它是您脚本中的语句一样。对于用户输入(我可以简单地说“为任何输入” - 除非你知道你在做什么),所以总是使用raw_input
函数。
因此,要解决此问题,请将input
替换为raw_input
:
filename = raw_input("filename: ")