Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 6, 2017 02:55:58

chelroot
Зарегистрирован: 2017-06-06
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись переменной в команду в кавычках

Python3
Допустим мне надо скопировать jpg файл. Делаю это так:

 shutil.copyfile(r'/var/ftp/10.10.0.124_01_TIMING.jpg' , r'/home/user/1.jpg')
так тоже работает
 shutil.copyfile('/var/ftp/10.10.0.124_01_TIMING.jpg' , '/home/user/1.jpg')
но файл оригинала получаю скриптом как переменную читая лог и он вылезает без ковычек
 print(fotofile)
/var/ftp/10.10.0.124_01_TIMING.jpg
Как мне засовывать вывод переменной в команду копирования? Какое должно быть выражение с учетом ковычек?
Чтобы это было вывод переменной, а не просто слово fotofile
 shutil.copyfile( ЧТО ТУТ НАПИСАТЬ?  , '/home/user/1.jpg')
Пробовал двойные, тройные, команда не выполняется?
Или как-то правильней по другому копировать?
Спасибо.




Отредактировано chelroot (Июнь 6, 2017 06:11:39)

Офлайн

#2 Июнь 6, 2017 07:52:48

treeloys
Зарегистрирован: 2017-06-01
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись переменной в команду в кавычках

shutil.copyfile( fotofile , ‘/home/user/1.jpg’)

Офлайн

#3 Июнь 6, 2017 10:59:49

chelroot
Зарегистрирован: 2017-06-06
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись переменной в команду в кавычках

Так выругалась. Гугл ничего не подсказывает толкового.

 File "./a51.py", line 23, in <module>
    shutil.copyfile(fotofile, '/home/vova/1.jpg')
  File "/usr/lib/python3.3/shutil.py", line 109, in copyfile
    with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: '/home/foto/gg3/site/10.10.0.124_01_19700104203613281_TIMING.jpg\n'

Офлайн

#4 Июнь 6, 2017 11:02:54

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Запись переменной в команду в кавычках

chelroot
No such file or directory: ‘/home/foto/gg3/site/10.10.0.124_01_19700104203613281_TIMING.jpg\n’
Вас не смущает \n после .jpg ? у вас действительно файл так называется “10.10.0.124_01_19700104203613281_TIMING.jpg\n” ?



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#5 Июнь 6, 2017 11:37:26

chelroot
Зарегистрирован: 2017-06-06
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись переменной в команду в кавычках

Очень смущает. Это похоже перевод строки прицепился.
print выдет нормально 10.10.0.124_01_19700104203613281_TIMING.jpg
Как его отцепить непонятно.
Пробовал запятые добавить, это когда в одну строчку выводит. Но прямо хоть обрезай чем.

Офлайн

#6 Июнь 6, 2017 12:16:43

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Запись переменной в команду в кавычках

chelroot
Как его отцепить непонятно.
а как вы строку получаете? можно “пойти в лоб” проверять если строка оканчивается на \n по типу:
 if fotofile.endswith('\n'):
    fotofile = fotofile.rstrip()
но лучше избавляться от символов перевода строки сразу при чтении, но для этого нужо понимать как вы его получаетет.

chelroot
print выдет нормально 10.10.0.124_01_19700104203613281_TIMING.jpg
он просто не печатает \n а переводит строку..



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июнь 6, 2017 12:20:19)

Офлайн

#7 Июнь 6, 2017 12:30:46

chelroot
Зарегистрирован: 2017-06-06
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись переменной в команду в кавычках

Читаю лог файл FTP сервера.
Камера каждую секунду закачивает фотку
Выделяю 8 слово в строке файла

 ffile='/var/log/pureftpd.log'
ff='/home/vova/1.jpg'
inf = open(ffile, 'r')
for line in inf:
  if 'gg3' in line:
    ( _, _, _, _, _, _, _, aaa )=line.split(' ')
    print(aaa)
    shutil.copyfile(aaa , ff)

Офлайн

#8 Июнь 6, 2017 12:43:24

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Запись переменной в команду в кавычках

ну дык оно перевод строки так цеплет, если он сраз после имени файла, обрезайте rstrip-ом или line сразу, или aaa сразу после получения. ничего лишнего rstrip не уберет, он убирвет только пробелы в конце или перевод строки.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#9 Июнь 6, 2017 16:25:01

chelroot
Зарегистрирован: 2017-06-06
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись переменной в команду в кавычках

Всем спасибо, все заработало
Добавил строку

 aaa = aaa.strip('\n')

Отредактировано chelroot (Июнь 6, 2017 16:26:36)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version