我机器上的文件关联(winxp home)就是用python解释器直接打开python脚本。如果我双击python脚本,控制台窗口就会运行,并且每件事都很好 - 只要脚本中没有语法错误。
在这种情况下,控制台窗口会打开一会儿,但会立即关闭。读取错误消息的速度太快。
当然,他们可以手动打开控制台窗口并通过键入python myscript.py
来执行脚本,但我确信有一个更方便(即“基于双击”)的解决方案。
答案 0 :(得分:13)
制作批处理文件:
C:\Python26\python.exe %1
IF %ERRORLEVEL% NEQ 0 PAUSE
直接使用它作为文件关联而不是python.exe。这只会导致在python.exe返回错误时执行PAUSE语句
答案 1 :(得分:1)
在未关闭的命令提示符窗口中运行命令的规范方法是
cmd /k "your command"
答案 2 :(得分:0)
我已经就rossipedia关于类似情况的回答留下了评论,但我怀疑它会在一个8岁的帖子中被注意到。所以,我已经尝试过自己。
我有一个python脚本来处理放在它上面的文件夹。当我添加新行时,有时会出现语法错误,我无法查看它们,因为命令提示符窗口关闭得太快。为了在出错后保持窗口打开,我不得不修改rossipedia的代码。我需要一种方法来传递一个路径到bat文件(在其上放一个文件夹)并让bat传递给python脚本的路径。以下是:
<resultMap id="ticketResultMap" type="Ticket">
<id property="id" column="id"/>
<result property="yourDateColumn" column="TICKET_DTM"
typeHandler="StringDateTypeHandler"/>
<!-- other fields mappings or use autoMapping="true" -->
</resultMap>
:
debug.bat
@echo off
REM debug.bat and myscript.py should be in the same dir, otherwise use absolute path for the python script
C:\Users\%username%\AppData\Local\Programs\Python\Python36-32\python.exe "%~dp0\myscript.py" %1
IF %ERRORLEVEL% NEQ 0 PAUSE
:
myscript.py
如果我收到错误,我只是使用import sys
print("printing dropped file path:")
print(sys.argv[1])
input()
来查看错误,它的工作原理相同(删除文件夹)。
<强>更新强>
在我的实际python脚本中,我有这一行:
debug.bat
当我使用sys.path.append("modules")
时,这不起作用。 &#34;模块&#34;是与python脚本位于同一文件夹中的文件夹。使用debug.bat调用脚本时,当前工作目录将更改为已删除文件的目录。因此,为了获得&#34; modules&#34;的路径,我必须使用绝对路径:
debug.bat
答案 3 :(得分:0)
方法是,右键单击从记事本保存到.py文件的脚本,然后单击“ IDLE”进行编辑,这很麻烦,但是您也可以从中运行模块