我觉得这个挺精致的,
我有多个项目文件夹,我想备份到一个 zip/tar 文件中,但我想避免备份诸如 pyc 文件和临时文件之类的文件。
我还有一个 Postgres 数据库需要备份。
将此操作作为 python 脚本运行有什么技巧吗?
此外,是否有办法阻止进程占用进程中的资源?
非常感谢您的帮助。
最佳答案
如果您使用的是 Linux(或任何其他形式的 Unix,例如 MacOSX),一种降低进程优先级的简单方法——因此,如果其他进程需要的话,间接地降低它对 CPU 的消耗——是nice命令。在 Python(相同的操作系统)中,os.nice让您的程序“让自己变得更好”(降低优先级 &c)。
为了备份 PostgreSQL 数据库,我推荐 PostgreSQL's own tools ;对于压缩除 pyc 文件(和临时文件——无论您如何识别这些文件)之外的文件夹,Python 非常适合。例如:
>>> os.chdir('/tmp/az')
>>> f = open('/tmp/a.zip', 'wb')
>>> z = zipfile.ZipFile(f, 'w')
>>> for root, dirs, files in os.walk('.'):
... for fn in files:
... if fn.endswith('.pyc'): continue
... fp = os.path.join(root, fn)
... z.write(fp)
...
>>> z.close()
>>> f.close()
>>>
这会压缩所述子树中的所有文件,除了那些以 .pyc
结尾的文件(不压缩——如果你想压缩,添加第三个参数 zipfile.ZIP_DEFLATED
到 zipfile.ZipFile
调用)。再简单不过了。
关于python - 文件夹+数据库的备份 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2504907/