Python 如何使用子进程获取当前目录?
如何获取我所在的当前目录?喜欢使用Python 如何使用子进程获取当前目录?,python,python-3.x,Python,Python 3.x,如何获取我所在的当前目录?喜欢使用 os.getcwd() 默认情况下,生成的子进程将继承PWD。但是,您可以为subprocess.Popen c'tor指定cwd参数,以设置不同的初始PWD。Unix(Linux,MacOS): 窗口: import subprocess arguments = ['cd'] directory = subprocess.check_output(arguments) 如果要在这两种类型的操作系统中运行,必须检查机器操作系统: import os im
os.getcwd()
默认情况下,生成的子进程将继承PWD。但是,您可以为subprocess.Popen c'tor指定
cwd
参数,以设置不同的初始PWD。Unix(Linux,MacOS):
窗口:
import subprocess
arguments = ['cd']
directory = subprocess.check_output(arguments)
如果要在这两种类型的操作系统中运行,必须检查机器操作系统:
import os
import subprocess
if os.name == 'nt': # Windows
arguments = ['cd']
else: # other (unix)
arguments = ['pwd']
directory = subprocess.check_output(arguments)
首先,我假定您并不是询问存在的某个特定子流程,该子流程只是为了告诉您当前的工作目录,而不做其他事情(Apducer的回答)。如果是这样的话,您可以简单地作为
os.getcwd()
而忽略子流程。你显然已经知道了。因此,您必须处理其他(任意?)子流程
其次,我假设您通过dr1fter的回答理解,您可以控制子流程启动的工作目录。我想这对你来说还不够
相反,我怀疑您认为,根据子流程自身的内部逻辑,它可能在启动后的某个时间更改了其工作目录,您无法预测它的最终位置,您希望能够在任意时间向子流程发送某种信号,询问它目前在哪里工作。一般来说,只有当该过程已通过接收此类信号(通过任何路径)并发出此类响应的逻辑进行了专门编程时,才可能实现这一点。我想这就是Supersew评论的意思,“这不取决于子流程吗?” 我之所以说“一般”,是因为存在特定于平台的方法。例如,请参见:
import os
import subprocess
if os.name == 'nt': # Windows
arguments = ['cd']
else: # other (unix)
arguments = ['pwd']
directory = subprocess.check_output(arguments)