@hardwellZero

Переменная в пути. Как?

Доброе утро, Тостер ;)
имею вот такой небольшой код:
import shutil
shutil.move("/home/hardwellzero/files/здесь_нужна_переменная", "/home/hardwellzero/здесь_тоже/и_здесь")

Значения переменных у меня есть. Нужно заставить перемещать файлы по этому пути. Пробовал использовать %s, не помогло. Есть еще какие-то варианты?
  • Вопрос задан
  • 372 просмотра
Решения вопроса 2
@anelyubin
а почему бы не сделать что-то вроде:
import shutil
path1 = "/home/hardwellzero/files/" + str(переменная_1)
path2 = ""/home/hardwellzero/" + str(переменная_2) + "/" + str(переменная_3)
shutil.move(path1, path2)

Или это не есть хорошо?
Ответ написан
@hardwellZero Автор вопроса
Все-таки я не очень..
shutil.move('/home/hardwellzero/files/%s' % (str(file)), '/home/hardwellzero/files/%s/%s' % (str(file_id), str(file)))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@idap
интересуюсь python, latex, linux, ML, AI
Ещё кросс-платформенный вариант

import shutil
import os

path_1 = os.path.join("/home/hardwellzero/files", var_1)
path_2 = os.path.join("/home/hardwellzero", var_2, var_3)

shutil.move(path1, path2)
Ответ написан
Комментировать
@bromzh
Drugs-driven development
Если нужен именно путь, то используй, как уже сказали, os.path.join, желательно всегда.
Если просто вставить значение переменной(ых) в строку, то используй интерполяцию. Есть 2 варианта: со знаком процента или через метод format:
a = 1
b = 'foo'
c = [1, 2, 3]

s1 = 'string with vars: %s %s %s' % (a, b, c)
s2 = 'string with vars: {} {} {}'.format(a, b, c)
s2 = 'string with vars: {2} {0} {1}'.format(a, b, c)
s2 = 'string with vars: {foo} {bar} {qux}'.format(foo=a, qux=b, bar=c)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы