执行脚本时如何设置不同的工作目录? [复制]

Posted

技术标签:

【中文标题】执行脚本时如何设置不同的工作目录? [复制]【英文标题】:How to set a different working directory when executing a script? [duplicate] 【发布时间】:2021-05-14 11:02:03 【问题描述】:

我想从某个目录执行 python 脚本,并想更改执行的工作目录在 shell 或脚本中没有cd-ing。有没有办法用常规的 Python 3 解释器做到这一点?

假设我在目录cwd 中,并且我要执行的子(子)目录中有一个脚本baz.py

cwd/foo/bar/baz.py

是否可以告诉解释器使用cwdfoobar(或文件系统中的任何其他位置)中的任何目录作为执行脚本的工作目录? IDE 可以在运行配置中做到这一点,在不实际 cd-ing 进入另一个目录的情况下实现它的最简单方法是什么?

编辑:我知道如何从脚本中更改目录,但我正在寻找一种方法来告诉解释器在哪里执行它而不修改脚本本身

【问题讨论】:

我发现您的问题不是 100% 清楚,但我假设您正在编写/打开文件,在这种情况下您设置完整路径,例如,如果您正在打开文件 file.txt ,您可以使用命令:file = open(r"C\Users\Kochsalz\cwd"),或任何您的完整路径。 【参考方案1】:
# Import the os module
import os

# Print the current working directory
print("Current working directory: 0".format(os.getcwd()))


# Change the current working directory
os.chdir('/tmp')

# Print the current working directory
print("Current working directory: 0".format(os.getcwd()))

复制自https://linuxize.com/post/python-get-change-current-working-directory/

我会说使用:os.chdir

来自 Python 文档https://docs.python.org/3/library/os.html

os.chdir(路径)

Change the current working directory to path.

This function can support specifying a file descriptor. The descriptor must refer to an opened directory, not an open file.

This function can raise OSError and subclasses such as FileNotFoundError, PermissionError, and NotADirectoryError.

Raises an auditing event os.chdir with argument path.

New in version 3.3: Added support for specifying path as a file descriptor on some platforms.

Changed in version 3.6: Accepts a path-like object.

【讨论】:

感谢您的回答,但正如我在问题中所说,我专门寻找一种不编辑脚本的方法。 很抱歉试图快速回答以解除不再提问的禁令 ***.com/questions/45384429/…: python ../b.py, python 'new dir'/yourscript.py【参考方案2】:

在windows上你需要指定完整路径

import os
cwd=os.getcwd()
os.chdir(f'cwd/foo/bar/baz.py')    

【讨论】:

感谢您的回答,但正如我在问题中所说,我专门寻找一种不编辑脚本的方法。

以上是关于执行脚本时如何设置不同的工作目录? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何写个脚本将Linux目录下的几个文件夹定时复制

(转)每天一个linux命令:cp 命令

cp命令

Bash 如何在不同的目录上下文中执行命令?

如何hook某一个shell命令

如何执行PHP脚本