系统相关
首页 > 系统相关> > “pwd”在运行python子进程时在Windows机器上给出路径

“pwd”在运行python子进程时在Windows机器上给出路径

作者:互联网

我编写了以下脚本file_I_executed.py:

import subprocess
def main():
    loc = subprocess.popen("pwd")
    print loc

哪个给出了输出:

C:\Python27\python.exe C:/Users/username/PycharmProjects/projectname/file_I_executed.py

但是,当我在windows cmd上尝试“pwd”时,我得到:

C:\Users\username\somedirectory>pwd
'pwd' is not recognized as an internal or external command,
operable program or batch file.

是什么赋予了?子进程是如何工作的?为什么“pwd”给我python路径以及脚本的路径,当我从windows命令行运行它时,它显然不应该给我这个?

我在Windows 7上使用来自pycharm的python 2.7.1.

澄清:我完全清楚“pwd”不是Windows命令.但是,上面显示的脚本给了我指示的结果,我不明白为什么.

解决方法:

在PyCharm下运行程序时看到的输出不是来自subprocess.popen(“pwd”)调用.事实上,这个电话永远不会被执行!

你有一个main函数,但你没有任何调用main()的代码.

输出只是PyCharm启动程序时的默认打印输出.您将使用空程序获得相同的输出.如果从命令行运行程序,则不会输出.

如果在文件底部添加main()调用,则在尝试执行subprocess.popen(“pwd”)时会出错,因为没有这样的函数.

如果将其更改为正确的subprocess.Popen(“pwd”),则会得到没有pwd命令的预期错误. (感谢anarchos78指出这一点.)

PyCharm有一个集成的调试器,可以帮助解决这样的问题.通过单步执行代码,您可以轻松查看代码的哪些部分已执行.

标签:python,subprocess,windows-7-x64
来源: https://codeday.me/bug/20190528/1169940.html