Combine f-string and raw string literal
You can combine the f
for an f-string with the r
for a raw string:
user = 'Alex'
dirToSee = fr'C:\Users\{user}\Downloads'
print (dirToSee) # prints C:\Users\Alex\Downloads
The r
only disables backslash escape sequence processing, not f-string processing.
Quoting the docs:
The 'f' may be combined with 'r', but not with 'b' or 'u', therefore raw formatted strings are possible, but formatted bytes literals are not.
...
Unless an 'r' or 'R' prefix is present, escape sequences in string and bytes literals are interpreted...
Raw f-strings are very useful when dealing with dynamic regular expressions. https://www.python.org/dev/peps/pep-0498/#raw-f-strings contains a lot of useful information.
Alternatively, you could use the str.format()
method.
name = input("What is your name? ")
print(r"C:\Users\{name}\Downloads".format(name=name))
This will format the raw string by inserting the name
value.