Как использовать переменную в строке в Python? - PullRequest
0 голосов
/ 09 июля 2019

У меня есть код Python, в котором я использую useruser в качестве имени пользователя:

zipfolder('shared-photo.zip', 'C:\Users\useruser\company\folder-images') 

Как я могу обновить этот код, чтобы получить имя пользователя, вошедшего в систему?

Например, вот что я попробовал:

myuser = os.popen("echo %username%").read().replace("\n","")

... и затем, когда я печатаю myuser, я получаю правильное имя пользователя:

print(myuser)

Как я могу использовать эту переменную в своем коде вместо useruser?

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Вы можете объединить вашу myuser переменную для вашей строки следующим образом:

zipfolder("tgs-stealed", "C:\Users\\" + myuser + "\company\folder-images")

Или используйте str.format():

zipfolder("tgs-stealed", "C:\Users\{}\company\folder-images".format(myuser))

Кроме того, как упомянуто @AbdulNiyasPM в комментариях, вы можете использовать f-string с Python 3.6 +:

zipfolder("tgs-stealed", f"C:\Users\{myuser}\company\folder-images")
0 голосов
/ 17 июля 2019

В Python есть много форм. Но к этой строке нужно добавить префикс строка с r (чтобы получить необработанную строку).

Конкатенация строк:

zipfolder('shared-photo.zip', r'C:\Users\\' + str(myuser) + '\company\folder-images')

Спецификатор преобразования:

zipfolder('shared-photo.zip', r'C:\Users\\%s\company\folder-images' % myuser)

Использование имен локальных переменных:

zipfolder('shared-photo.zip', r'C:\Users\\%(myuser)s\company\folder-images' % locals())

Использование str.format():

zipfolder('shared-photo.zip', r'C:\Users\\{0}\company\folder-images'.format(myuser))

Использование f-строк:

zipfolder('shared-photo.zip', r'C:\Users\\{myuser}\company\folder-images')) # added in Python 3.6

Адаптировано с 1 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...