在 os.chdir('/tmp') 与 os.system( "cd " + backup_location) 中更改目录



我正在尝试使用Python进行备份,因为我的Bash脚本变得太大太复杂了。我对Python完全陌生,我不是它的粉丝,但似乎Python是编写如此复杂脚本的完美工具。

我在Github上找到了一些东西:

https://github.com/Tutorialwork/Linux-Backup-Script/blob/master/backup.py

在上面的脚本中,有这样一行:

os.system("cd " + config.backup_location + " && rm mysqlbackup-" + date + ".sql")
我的问题是:

通过os.system("cd somedir")调用文件系统操作命令和像os.chdir("somedir")这样的函数有什么实际的区别吗?

我在Debian 11上使用Python 3.9。如果我的脚本可以在Linux发行版之间移植,那就太好了。不需要Windows兼容性

是。有。当你运行-

os.chdir("somedir")

python上下文中的dir更改。所以调用

os.getcwd()

返回新修改的目录。

运行时
os.system("cd somedir")

生成一个新进程,其中目录被更改

在你给出的例子中,作者想在另一个进程中做一些事情,所以他们改变了生成进程中的目录。

最新更新