Найти - Пользователи
Полная версия: скрипт копирование файлов
Начало » Python для новичков » скрипт копирование файлов
1 2 3
RDV1984
Решил попробовать себя в Python.
Начал с простенького скрипта, который копирует файлы mp3 из одного каталога в другой.
Вот собственно скрипт:
#!/usr/bin/env python
# -*- coding: utf8 -*-
import glob, shutil, os
names=glob.glob('/home/dm/test/*.mp3')
for name in names:
    shutil.move(name, "/mnt/d/test2/")

После выполнения выскакивает вот такая ошибка, хотя один файл все таки копируется.
Traceback (most recent call last):
File “move_mp3.py”, line 9, in <module>
shutil.move(name, “/mnt/d/test2/”)
File “/usr/lib/python2.7/shutil.py”, line 299, in move
copy2(src, real_dst)
File “/usr/lib/python2.7/shutil.py”, line 129, in copy2
copystat(src, dst)
File “/usr/lib/python2.7/shutil.py”, line 98, in copystat
os.utime(dst, (st.st_atime, st.st_mtime))
OSError: Operation not permitted: ‘/mnt/d/test2/2Pac & DMX - Who We Be.mp3’
Подскажите что в скрипте не так???
FishHook
Скрипт работает, проверил. Как там с правами у файлов?
RDV1984
@toshiba:~/test$ ls -la
итого 27156
drwxr-xr-x 2 dm dm 4096 Дек 28 11:21 .
drwxr-xr-x 60 dm dm 4096 Дек 28 13:34 ..
-rw-r–r– 1 dm dm 66461 Авг 29 12:12 0LUBqfBNzBY.jpg
-rw-r–r– 1 dm dm 4894848 Дек 19 18:44 2Pac & DMX - Who We Be.mp3
-rw-r–r– 1 dm dm 67867 Авг 29 12:12 521t7-BrUg4.jpg
-rw-r–r– 1 dm dm 672822 Дек 2 20:08 Bogatij_papa_Bednij_papa.mobi
-rw-r–r– 1 dm dm 11773344 Дек 25 15:31 eleks - Black & White .mp3
Viktors

а на папку test2 ?

RDV1984
Вот такие:
drwxrwxrwx 1 root root 184 Дек 28 13:58 test2

Да похоже, что то у меня с правами, если копирую файлы в папку в своей домашней директории, то все ок. А если в test 2 то вылезает вышеназванная ошибка.
Эта папка test2 находится у меня на примонтируемом диске win, ntfs. Вот такие права на каталогах /mnt/d/test2
drwxr-xr-x 10 root root 4096 Мар 10 2012 mnt
drwxrwxrwx 1 root root 8192 Дек 27 23:09 d
drwxrwxrwx 1 root root 184 Дек 28 13:58 test2
В групе root я не состою.
Viktors

так сделайте chown на папку или запустите скрипт от рута.

py.user.next
RDV1984
Вот такие права на каталогах /mnt/d/test2
а причём тут эти каталоги ? ls -ld /mnt/d /mnt/d/test2
RDV1984
chown почему то не изменяет владельца. Делаю так:
# cd /mnt/d/
toshibamnt/d# chown dmitry:dmitry test2
ls -l
drwxrwxrwx 1 root root      48 Дек 28 15:16 test2
Хотелось бы чтобы скрипт работал от пользователя, а не от рута.
В Х-ах в эту папку файлы свободно копируются, а скрипт почему то не хочет копировать.
py.user.next не совсем понял вопрос.
JOHN_16
RDV1984
а в вашей системе зарегистрированы пользователь и группа dmitry ? а то выше фигурировали только dm
py.user.next
#!/usr/bin/env python
# -*- coding: utf8 -*-
 
import glob, shutil
 
names = glob.glob('/home/guest/tmp/*.txt')
for name in names:
    shutil.move(name, "/mnt/win/Temp")

[guest@localhost mnt]$ ll -d /mnt /mnt/win /mnt/win/Temp
drwxr-xr-x 6 root root 4096 Янв 12 2012 /mnt
drwxrwxrwx 1 root root 12288 Дек 29 11:47 /mnt/win
drwxrwxrwx 1 root root 256 Дек 29 11:49 /mnt/win/Temp
[guest@localhost mnt]$

так работает
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB