Python - 将文件移动到 Ubuntu 中的根目录

Python - Move files to root directory in Ubuntu

我必须使用 Python 脚本将所有文件从特定目录移动到 root 目录。我因以下代码失败并出现 [Errno 13] Permission denied 错误。

import shutil
import os

source = '../json' 
dest = '/var/www/json'
files = os.listdir(source)

for f in files:
    shutil.move(source+"/"+f, dest)

是否可以使用此代码添加 sudo 或者是否有任何其他方法可以将文件移动到根文件夹? 我在 Ubuntu16.04

工作

您可以将您的用户添加到文件夹权限并授予用户对该文件夹的写入权限。 使用 chown 或 chmod 调整目标文件夹的权限

我可以想到三种可能的解决方案:

  1. 运行 python 作为 sudo:sudo python script.py。可能不是最好的方法,因为可能存在安全问题。
  2. 更改文件夹的权限,以便 运行 使用 python 脚本的用户可以访问这些文件夹中的 copy/edit 个文件。
  3. 作为根从 python 调用 cp/mv 作为子进程。与第一个选项基本相同。可以通过让用户输入 root 的密码来完成,我想这对你来说不是很好。或者您可以使用 polkit 之类的东西来避免使用密码。

我建议第二个选项在长 运行 中是最好和最简单的。