当字符串是变量时,如何使用原始(r)字符串?

2024-04-20 13:42:02 发布

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

我在指定目录路径的位置使用原始字符串处理反斜杠:

chrome_options.add_experimental_option('prefs', {
        'download.default_directory': r'C:\Users\xxx\Downloads'})

上面的代码有效。 但是,我希望将目录路径作为变量传递

这不起作用:

pathname_string = 'C:\Users\xxx\Downloads'
chrome_options.add_experimental_option('prefs', {
    'download.default_directory': pathname_string }) 

我收到OSError:[WinError 123]文件名、目录名或卷标语法不正确:“C:\Users\xxx\Downloads\n”

我试过这样的方法:

pathname_string = 'C:\Users\xxx\Downloads'
(...)
chrome_options.add_experimental_option('prefs', {
        'download.default_directory': r + pathname_string})

或直接使用:

pathname_string = "'C:\Users\xxx\Downloads'"
pathname_string = "r" + pathname_string 
(...)
chrome_options.add_experimental_option('prefs', {
        'download.default_directory': pathname_string})

但这些似乎不起作用

请注意,“pathname_string”是一个从外部源读取的变量;目录不是硬编码的

这是我第一次用“r”前缀表示文字字符串,所以我有点迷路了。有人能启发我吗?谢谢


Tags: 目录adddefaultstringdownloaddownloadschromeusers
1条回答
网友
1楼 · 发布于 2024-04-20 13:42:02

您只需使用原始字符串文本定义pathname_string

# exactly equivalent to 'C:\\Downloads'
pathname_string = r'C:\Downloads'

chrome_options.add_experimental_option(
    'prefs',
    {'download.default_directory': pathname_string}
)

如果pathname_string是从另一个源读取的,那么就根本不涉及文本,不管是原始的还是其他的。您的程序不负责确保向其传递正确的值

相关问题 更多 >