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

时间:2018-12-06 06:10:08

标签: python ubuntu root sudo shutil

我必须使用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中工作

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

从长远来看,我建议第二个选项是最好和最简单的。