使用文件位置的系统路径从windows命令行启动Python脚本
我不确定,这可能更像是一个普通的Windows问题,而不是Python问题 我有一个名为GDAL(地理空间库)的文件夹,里面装满了python文件。GDAL库的位置存储在windows系统路径中,因此当我在windows命令窗口中键入此项以检查路径是否正确配置时:使用文件位置的系统路径从windows命令行启动Python脚本,python,windows,Python,Windows,我不确定,这可能更像是一个普通的Windows问题,而不是Python问题 我有一个名为GDAL(地理空间库)的文件夹,里面装满了python文件。GDAL库的位置存储在windows系统路径中,因此当我在windows命令窗口中键入此项以检查路径是否正确配置时: gdal_retile.py 我打开记事本来显示代码,正如我所期望的,因为这是这台电脑上.py文件的默认应用程序 如果我这样做: python gdal_retile.py 它说,它不起作用 没有这样的文件或目录 但如果我定义完整
gdal_retile.py
我打开记事本来显示代码,正如我所期望的,因为这是这台电脑上.py文件的默认应用程序
如果我这样做:
python gdal_retile.py
它说,它不起作用
没有这样的文件或目录
但如果我定义完整路径:
python "C:\Program Files\GDAL\gdal_retile.py"
它很好用。路径不能用作Python解释器参数的一部分吗?TL:DR否
PATH
用于搜索您试图运行的(可执行)文件。如果文件不可执行(例如,文本文件),windows将尝试查找注册用于处理文件扩展名(在您的记事本中)的程序,并打开该文件,将文件路径作为参数传递给它
找到正确的程序后,首先检查以下所有参数是否有最终的%ENVIRONMENT\u VARIABLE%
占位符以替换为实际值,然后将其视为以空格分隔的字符串列表并传递给启动程序。那么,计划的任务就是找出如何处理它们<代码>路径在参数解析中没有作用
为什么会这样?
程序的参数可以是任何东西。假设您正在传递要在当前文件夹中创建的文件的文件名。操作系统如何知道您传入的文件名实际上不是要在
路径中搜索的现有文件,而是将由程序创建的文件?这就是为什么处理论据的责任完全在正在启动的程序上。 Python在其参数中不考虑系统路径,甚至不是<代码> Python PATH < /C> >
您可以使用where
来模拟此操作,以在路径中查找脚本
where gdal_retile.py > %TEMP%\fullp
然后用它来设置一个变量
set /P C=<%TEMP%\fullpath
(此处对where
命令没有错误检查,该命令可能不返回任何内容或返回超过1条路径,因此该解决方案是完善的,但与Windows上的.py
扩展相关联的解释器相比,启动另一个解释器非常方便)是有意义的。从逻辑上讲(不知道你的答案),这似乎是一个自然的路径扩展,能够在论点解决中使用它,但是的,这是非常有意义的。
python "%C%"