我正在尝试使用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")
生成一个新进程,其中目录被更改
在你给出的例子中,作者想在另一个进程中做一些事情,所以他们改变了生成进程中的目录。