“Python makedirs makedirs”和“OSError:[Errno 13] Permission denied”问题

时间:2016-10-26 18:28:01

标签: python macos python-2.7 automator

我在一家摄影工作室工作,每天拍摄和修饰数千张照片。该工作室已经手动移动文件多年,我们遇到很多用户错误将文件/文件夹放在错误的地方。为了帮助消除这种情况,我创建了一个Python脚本(通过Apple Automator droplet应用程序运行),其中:1。将文件从摄影师的计算机移动到文件服务器,2。创建新目录(如果它们尚不存在),3。命名版本控制如果已存在具有相同名称的文件,则更改文件名。

这是脚本:

import sys
import os
import subprocess
destinationPath = '/Volumes/extensis/product'

def updateName(name, incrementCounter):
    bsc = name[:19]
    seq = name[19:20]
    ext = name[20:]
    try:
        seq_new = int(seq)
        if incrementCounter:
            seq_new = seq_new + 1
    except ValueError:
        seq_new = 1
    name = bsc + str(seq_new).zfill(1) + ext
    return name

def makeSureCounterIsNumeric(name):
    return updateName(name, False)

def incrementCounter(name):
    return updateName(name, True)

for f in sys.argv[1:]:
    name = os.path.basename(f)
    newdir = os.path.join(destinationPath, name[:1], name[:5], name[:10], name[:15])
    print newdir
    if not os.path.exists(newdir):
        os.makedirs(newdir)
    name = makeSureCounterIsNumeric(name)
    while os.path.isfile(os.path.join(newdir,name)):
        name = incrementCounter(name)
    subprocess.call(['cp', f, os.path.join(newdir,name)])

这在MOST计算机上运行良好,没有问题。有些计算机根本无法运行应用程序并获得python makedirs / permission denied错误。有些计算机能够在一段时间内运行该应用程序,然后突然出现同样的错误。如果我们重新启动计算机,有时会清除此错误,但并非总是如此。回溯:

Traceback (most recent call last): 
File "<string>", line 31 in <module> 
File "/System/Library/Frameworks/Python.framework/Version/2.7/lib/python2.7/os.py", Line 150, in makedirs makedirs(head, mode) 
File "/System/Library/Frameworks/Python.framework/Version/2.7/lib/python2.7/os.py", Line 150, in makedirs makedirs(head, mode) 
File "/System/Library/Frameworks/Python.framework/Version/2.7/lib/python2.7/os.py", Line 150, in makedirs makedirs(head, mode) 
File "/System/Library/Frameworks/Python.framework/Version/2.7/lib/python2.7/os.py", Line 150, in makedirs makedirs(head, mode) 
File "/System/Library/Frameworks/Python.framework/Version/2.7/lib/python2.7/os.py", Line 157, in mkdirs mkdirs(name, mode) 
OSError: [Errno 13] Permission denied: '/Volumes/extensis/product' 

我们已确认所有本地计算机都运行相同版本的OS / python,它们都具有各自计算机的管理员权限,所有计算机都连接到同一文件服务器地址,并且每个人都具有访问/修改的正确权限服务器位置。他们甚至可以手动创建目录或将文件移动到此位置而不会出现问题。

我还发现StackOverflow上的一些人提到卷路径中使用的“/”会导致这些问题,因为它引用了根文件夹,但我尝试了路径的所有变体。使用“/”,不带“/”,以上是我能够成功运行的唯一变体。其他变体要么抛出权限错误,要么似乎成功运行但没有文件被移动。

我们做了很多研究而没有任何答案。我们已经与当地的IT部门和软件开发人员进行了交谈,没有人知道任何不同的东西。他们唯一建议的可能是它只是一个Mac-to-Windows问题,可能不是我们可以解决的任何问题。这没有用。

0 个答案:

没有答案