【发布时间】:2014-10-30 13:19:30
【问题描述】:
我需要将脚本中的文件从 ext4 硬盘上的本地文件夹移动到作为 Windows 共享安装的文件夹,例如:mount -t cifs -o username=username,password=password,rw,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777 //192.168.1.120/storage /mnt/storage
我尝试使用os.rename(src,dst)、shutil.move(src,dst) 甚至subprocess.call(['mv', src,dst], Shell=True) 或subprocess.call(['mv', src,dst])
获取每个文件的错误,以及由于 linux 文件所有权/权限,我可以告诉它的错误。
例如当mv /mnt/networkshare/file1.txt /tmp/file1.txt 很好,但是
mv /tmp/file1.txt /mnt/networkshare/file1.txt
结果
"mv: preserving times for /mnt/networkshare/file1.txt: Operation not permitted"
"mv preserving permissions for /mnt/networkshare/file1.txt: Operation not permitted"
我认为os.rename(src,dst) 和shutil.move(src,dst) 也会出现同样的问题,但他们并没有那么健谈。
shutil.move(src,dst) 告诉我:[Errno 1] Operation not allowed: '/mnt/networkshare/file1.txt'
和os.rename(src,dst) 说:[Errno 18] 无效的跨设备链接
编辑:pcmanfm 能够从本地剪切和粘贴到远程就好了。
另外..让我感到困惑的是一些文件被移动了..
【问题讨论】:
标签: python linux windows file-io share