Найти - Пользователи
Полная версия: Запись переменной в команду в кавычках
Начало » Python для новичков » Запись переменной в команду в кавычках
1
chelroot
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')
Пробовал двойные, тройные, команда не выполняется?
Или как-то правильней по другому копировать?
Спасибо.




treeloys
shutil.copyfile( fotofile , ‘/home/user/1.jpg’)
chelroot
Так выругалась. Гугл ничего не подсказывает толкового.
 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'
PEHDOM
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” ?
chelroot
Очень смущает. Это похоже перевод строки прицепился.
print выдет нормально 10.10.0.124_01_19700104203613281_TIMING.jpg
Как его отцепить непонятно.
Пробовал запятые добавить, это когда в одну строчку выводит. Но прямо хоть обрезай чем.
PEHDOM
chelroot
Как его отцепить непонятно.
а как вы строку получаете? можно “пойти в лоб” проверять если строка оканчивается на \n по типу:
 if fotofile.endswith('\n'):
    fotofile = fotofile.rstrip()
но лучше избавляться от символов перевода строки сразу при чтении, но для этого нужо понимать как вы его получаетет.

chelroot
print выдет нормально 10.10.0.124_01_19700104203613281_TIMING.jpg
он просто не печатает \n а переводит строку..
chelroot
Читаю лог файл 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)

PEHDOM
ну дык оно перевод строки так цеплет, если он сраз после имени файла, обрезайте rstrip-ом или line сразу, или aaa сразу после получения. ничего лишнего rstrip не уберет, он убирвет только пробелы в конце или перевод строки.
chelroot
Всем спасибо, все заработало
Добавил строку
 aaa = aaa.strip('\n')
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