Найти - Пользователи
Полная версия: Проблема с использованием shutil
Начало » Python для новичков » Проблема с использованием shutil
1
l1nx
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, os.path, shutil
img  = sys.argv[1]
dir_ = sys.argv[2]
date = "11.11.2014"
for root, dirs, files in os.walk(dir_):
    if date in dirs:
        shutil.copy2(img, os.path(dir_, date))
    else: 
        print "err"

Надо скопировать фото в папку с именем 11.11.2014, которая в dir_
так вызываю скрипт:
python test_shutil.py 20141111_191402.jpg testdir
File “test_shutil.py”, line 12
SyntaxError: Non-ASCII character ‘\xd0’ in file test_shutil.py on line 12, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Что не так с copy2?
werter
shutil.copy2(img, os.path.join(dir_, date))
l1nx
werter
shutil.copy2(img, os.path.join(dir_, date))
Да, join забыла. Но ошибка с Non-ASCII не убирается
PooH
l1nx
SyntaxError: Non-ASCII character ‘\xd0’ in file test_shutil.py on line 12
Я в полном замешательстве. Ошибка в наличии не ASCII символа в строчке 12, однако в предъявленном исходнике 11 строк, и кодировка исходника задана. Вы точно один и тот же скрипт запускаете и правите?!
l1nx
PooH
http://pastie.org/10100134
Тут на сайте парсилка кода выкидывает пустые строки
py.user.next
Прикрепи файл с диска к сообщению.

l1nx
SyntaxError: Non-ASCII character ‘\xd0’ in file test_shutil.py on line 12, but no encoding declared
Тут два противоречия: во-первых, он говорит, что в исходном файле есть байт \xd0, когда его нет, а во-вторых, он говорит, что кодировка не указана, когда она указана.
Так что, возможно, ты потеряла что-то при копировании кода из файла на форум.
l1nx
Разобралась с кодировкой и своей криворукостью.
Теперь что-то не так с логикой выполнения кода. Фото копируется в папку и выводится err
http://i.imgur.com/HOQUTk6.png
py.user.next
Запускаешь через
python script.py
хотя сверху написан способ запуска:
#!/usr/bin/python
Надо просто добавить право выполнения на скрипт и запускать через
./script.py
и писать не так прямо, а через env:
#!/usr/bin/env python
потому что питона в /usr/bin может не оказаться.

l1nx
Фото копируется в папку и выводится err
Потому что os.walk() так работает - спускается в подпапки.

>>> import os
>>> 
>>> w = os.walk('prog')
>>> next(w)
('prog', ['practice', 'info', 'projects'], ['.directory'])
>>> next(w)
('prog/practice', ['c', 'info'], ['.directory'])
>>>
l1nx
py.user.next
Ок. Сделала так
#!/usr/bin/env python
import sys, os.path, shutil
img  = sys.argv[1]
dir_ = sys.argv[2]
date = "11.11.2014"
for root, dirs, files in os.walk(dir_):
    if date in dirs:
        shutil.copy2(img, os.path.join(dir_, date))
    else: 
        print "err"
    break
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