Python3跳过第一个输入调用并继续输入第二个输入
我遇到了一个问题,python没有为代码中的输入调用输入输入。它只是跳过输入并将一个空字符串放入变量源中,这会导致程序在尝试打开名称为source(空字符串)的文件时失败。Python3跳过第一个输入调用并继续输入第二个输入
什么可能导致它跳过一行输入?
我有这段代码,我写了只是几行要求用户输入的代码。
def main():
source = input('please enter source file name: ')
file_name = input('please enter file name you want script to be saved as: ')
language = input('please enter language to generate script in: ')
args = input('please enter comma delimited list of attributes from source file (if any): ')
print('\nGenerating script...\n')
generate_script(source,file_name,args,language)
return
当我运行它正常工作程序和产出
please enter source file name: Tree.txt
please enter file name you want script to be saved as: t
please enter language to generate script in: matlab
please enter comma delimited list of attributes from source file (if any):
Generating script...
Generation successful
当我把这个代码给别人,他们跑了它自己的计算机出现此错误的
please enter source file name: /* SHOULD TAKE USER INPUT HERE BUT IMMEDIATELY PRINTS NEXT INPUT LINE INSTEAD */ please enter file name you want script to be saved as: 'C:\Users\pmade\Desktop\DecisionTreeGenerator-master\DecisionTreeGenerator-master\T.txt'
please enter language to generate script in: 'matlab'
please enter comma delimited list of attributes from source file (if any): 'PCI0, FREEZE_THAW_YR'
Generating script...
File "<stdin>", line 1, in <module>
File "C:\Program Files\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
execfile(filename, namespace)
File "C:\Program Files\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/pmade/Desktop/DecisionTreeGenerator-master/DecisionTreeGenerator-master/Text2Code.py", line 162, in <module>
main()
File "C:/Users/pmade/Desktop/DecisionTreeGenerator-master/DecisionTreeGenerator-master/Text2Code.py", line 9, in main
generate_script(source,file_name,args,language)
File "C:/Users/pmade/Desktop/DecisionTreeGenerator-master/DecisionTreeGenerator-master/Text2Code.py", line 32, in generate_script
with io.open(source,'r') as f_r:
FileNotFoundError: [Errno 2] No such file or directory: "runfile('C:/Users/pmade/Desktop/DecisionTreeGenerator-master/DecisionTreeGenerator-master/Text2Code.py', wdir='C:/Users/pmade/Desktop/DecisionTreeGenerator-master/DecisionTreeGenerator-master')"
>>> Traceback (most recent call last):
似乎就像解释器在main中打印第一个输入调用的消息一样,然后在等待输入之前直接进入第二个输入调用,导致它抱怨称为“”的文件没有t存在于当前目录中。任何人都知道发生了什么事?
编辑:抱歉忘了解释正确,函数generate_script使用从跳过的输入中取得的字符串打开源文件读取。 下面是代码:
def generate_script(source,file_name,args='',language='python'):
with io.open(source,'r') as f_r:
do work with file f_r....
与错误,解释跳过进行输入,将正常投入源变量引起的IO尝试打开一个名为“”文件来源是空白,这导致了以上错误。
错误消息的最后一行几乎说明了一切:在功能generate_script
这是不是您发布的代码的一部分发生
FileNotFoundError: [Errno 2] No such file or directory: "runfile('C:/Users/pmade/Desktop/DecisionTreeGenerator-master/DecisionTreeGenerator-master/Text2Code.py', wdir='C:/Users/pmade/Desktop/DecisionTreeGenerator-master/DecisionTreeGenerator-master')"
错误。
它看起来像错误发生在第7行,你称为“generate_script”。根据所做的工作以及可能调用的模块,其他人可能没有安装这些模块,或者没有正确调用它们。
这是文件路径的错误,因为你得到了'FileNotFoundError' – Ding