2014-09-08 2 views
0

그래서 부팅 드라이브에서 파이썬을 사용하여 외부로 파일을 복사하려고합니다. 이 때문에 os.rename은 옵션이 아닙니다 (교차 장치 오류가 발생합니다). 나는 shutil.move를 사용하기로 결정했다. 그러나 OSError 1을 throw하여 os.chmod의 내부 호출이 허용되지 않는다고 주장했다. 흥미로운 것은 그것이 이동하는 디렉토리에 권한 777이 있다는 것입니다. 호출은 다음과 같습니다 :OSError : [오류 1] 작동이 허용되지 않습니다. shutil.move

if hasattr(f.file,'name'): 
        move(f.file.name,path) 

전체 스택 거래는 다음과 같습니다.

[08/Sep/2014:00:49:36] HTTP Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/cherrypy/_cprequest.py", line 670 
, in respond 
    response.body = self.handler() 
    File "/usr/local/lib/python2.7/dist-packages/cherrypy/lib/encoding.py", line 2 
17, in __call__ 
    self.body = self.oldhandler(*args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/cherrypy/_cpdispatch.py", line 61 
, in __call__ 
    return self.callable(*self.args, **self.kwargs) 
    File "/home/pi/btsync/BitTorrentSyncWeb/py/main.py", line 129, in upload 
    move(f.file.name,path) 
    File "/usr/lib/python2.7/shutil.py", line 301, in move 
    copy2(src, real_dst) 
    File "/usr/lib/python2.7/shutil.py", line 131, in copy2 
    copystat(src, dst) 
    File "/usr/lib/python2.7/shutil.py", line 100, in copystat 
    os.chmod(dst, mode) 
OSError: [Errno 1] Operation not permitted: '/mnt/bakery/Dump/ck.gif' 

권한은 그냥 드라이브가 chmod를 할 수 리눅스 형식이 있는지 확인

$ls -l /mnt/bakery/ 
    drwxrwxrwx 4 root root 32768 Sep 8 01:30 Dump 
$ls -l /mnt/bakery/Dump |grep ck.gif 
    -rwxrwxrwx 1 root root 1017711 Sep 8 00:49 ck.gif 
+0

권한을 변경하지 않고 이동하는 방법이나 이동 권한 변경 권한을 작동시키는 방법을 묻는 중입니까? – abarnert

+0

나는 왜 내가이 파일을 옮길 수 없는지와 그것을 고치는 법을 묻고있다. 나는 그것을 움직일 수 있어야한다. – ollien

+0

글쎄, 쉘에서이 명령을 실행 해 보셨습니까? 거기서 이것을 재현 할 수 있다면, 이것은 SuperUser를위한 완벽한 질문입니다 (그러나 Stack Overflow에 대해서는 좋은 질문이 아닙니다). 'chmod'가 쉘에서 작동하지만'shutil.move'에서는 작동하지 않는다면 좋은 질문이 있습니다.하지만 우선 파이썬에서 개별 메소드를 호출하여 더 많은 정보를 얻을 수 있는지 확인하십시오. 그러나 나는 그것이 이전의 것이라는 것을 내기를 기꺼이합니다. 그리고 당신은 잘못된 곳에서 묻고 있습니다. – abarnert

답변

-1

아래에 표시됩니다. FAT32는이 중 하나가 아닙니다.

관련 문제