如何在文件路径中使用变量

2024-09-29 17:17:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为系统(Windows)上的每个用户分析Chrome的默认数据位置。默认目录的字符串串联起作用。但是我在循环中的两个变量(默认目录和用户)不起作用。我正在写一个使用炭黑API的脚本。你知道吗

for user in users_list:
        try:
            default_directory = os.path.normpath('C:\\Users\\' + user + '\\AppData\\Local\\Google\\Chrome\\User Data\\Default') # String concatenation
            session.create_process(r'C:\\Windows\\cbapi\\hindsight.exe -i "{default_directory}" -o "hindsight_{user}"', wait_timeout=600) 
        except Exception: pass

提前感谢您的帮助!你知道吗


Tags: 数据字符串用户in目录脚本apidefault
2条回答

我想您忘记了字符串前面的格式说明符'f'。你知道吗

a = 'some_variable'
out_string = f'this is {a}' # Notice the 'f'

以下步骤将起作用:

for user in users_list:
        try:
            default_directory = os.path.normpath('C:\\Users\\' + user + '\\AppData\\Local\\Google\\Chrome\\User Data\\Default') # String concatenation
            session.create_process(fr'C:\\Windows\\cbapi\\hindsight.exe -i "{default_directory}" -o "hindsight_{user}"', wait_timeout=600) 
        except Exception: pass

如果使用的是原始字符串(如引号前面的r所示),则不应使用双反斜杠;如果要在字符串中嵌入变量,则应使用f字符串。你知道吗

更改:

session.create_process(r'C:\\Windows\\cbapi\\hindsight.exe -i "{default_directory}" -o "hindsight_{user}"', wait_timeout=600)

到(如果您使用的是Python 3+):

session.create_process(fr'C:\Windows\cbapi\hindsight.exe -i "{default_directory}" -o "hindsight_{user}"', wait_timeout=600)

或者,如果您使用的是Python 2.7,其中不支持f-string,请改用字符串格式化程序:

session.create_process(r'C:\Windows\cbapi\hindsight.exe -i "{}" -o "hindsight_{}"'.format(default_directory, user), wait_timeout=600)

相关问题 更多 >

    热门问题