求助,如何在windows cmd下直接运行python脚本

wax5798 2019-01-25 03:04:05
实际的情况稍微有点复杂,为了方便描述,举一个简化了的例子

我在 windows 下创建了一个目录D:\python_script,用来存放 python 脚本,并且把这个路径放在了环境变量 PATH 中
我写了一个测试脚本 test.py

#!/usr/bin/env python
# coding=utf-8

import sys

print "sys.argv:" + str(sys.argv)
print "len(sys.argv): " + str(len(sys.argv))


并且我把 .py 的打开方式设置为了 C:\Python27\python.exe
我打开命令行窗口,输入命令 test.py 123 345
输出的结果为

sys.argv:['D:\\python_script\\test.py']
len(sys.argv): 1


test.py 并没有接收到我传递过去的参数,这是怎么回事呢?我需要其他额外配置吗?

我的操作系统是 win8
...全文
1322 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
好想长大 2019-03-04
  • 打赏
  • 举报
回复
用powershell
wax5798 2019-01-29
  • 打赏
  • 举报
回复
没找到好的解决方案,把系统升级到 win10 就没有这个问题了
wax5798 2019-01-25
  • 打赏
  • 举报
回复
引用 5 楼 半吊子Py全栈工程师 的回复:
执行python 文件 在cmd 下要这样写 python ***.py 的,不然就是打开文件了?!


最初,我把 .py 的默认打开方式设置成了写字板,这样会导致在 cmd 中直接执行 *.py 的结果是打开文件。
但后来我把 .py 的默认打开方式设置成了 python.exe(版本2.7.13),结果导致cmd中直接执行 test.py 123 345 ,不能接收到参数

以上问题出现在我的 win8 系统上,之后我找了台 win10 的系统,安装 python2.7.13,在 cmd 中执行 test.py 123 345 是能正确接收到参数的。

所以,这是 win8 的 bug?
  • 打赏
  • 举报
回复
执行python 文件 在cmd 下要这样写 python ***.py 的,不然就是打开文件了?!
  • 打赏
  • 举报
回复
我帮你测试了一下:
使用 python3
python3 aaa.py 123 456
返回 sys.argv:['aaa.py', '123', '345']
len(sys.argv): 3
修改默认打开方式为python3.exe 执行 aaa.py 123 456
返回 sys.argv:['aaa.py', '123', '345']
len(sys.argv): 3
使用python2
python3 aaa.py 123 456
返回 sys.argv:['aaa.py', '123', '345']
len(sys.argv): 3
修改默认打开方式为python3.exe aaa.py 123 456
返回 sys.argv:['F:\\\xd0\xa1\xba\xec\xca\xe9\\web\xb6\xcb\\aaa.py'] # 这里我没有加utf-8
len(sys.argv): 1


wax5798 2019-01-25
  • 打赏
  • 举报
回复
另外在补充一下: 在此之前,我的 .py 文件默认打开程序是写字板,这种情况下在命令行中输入 test.py,会默认打开写字板程序 然后我把 .py 的默认打开程序改为了 python.exe,再之后就出现了描述这样的问题
wax5798 2019-01-25
  • 打赏
  • 举报
回复
引用 1 楼 ruancan 的回复:
照你的描述是没有问题的,实际肯定是会把123 345打印出来的,建议你换个排查方向
因为我之前的工作环境一直都是 linux,迁移到 windows 上,有很多东西不太清除。怀疑是环境配置上的问题。会不会是文件属性,或者是注册表需要额外配置呢? 另外,如果使用命令: python D:\python_script\test.py 123 345 这种方式执行就没问题
ruancan 2019-01-25
  • 打赏
  • 举报
回复
照你的描述是没有问题的,实际肯定是会把123 345打印出来的,建议你换个排查方向

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧