I am using python on windows and the path of my project folder is way too long. For example:
pathProject = r'C:\Users\Account\OneDrive\Documents\Projects\2016\Shared\Project-1\Administrative\Phase-1\Final' os.chdir(pathProject)
How can I break this very long strong into multiple lines in the most elegant way? I know how to do it if the string is not a raw string. However, if I try something like this, I get an error:
pathProject = r'''C:\Users\Account\OneDrive\ Documents\Projects\2016\Shared\ Project-1\Administrative\Phase-1\ Final'''
What is the most elegant way to break this raw string into multiple lines?
You can use parenthesis to trigger automatic line continuation. The strings will be automatically concatenated.
pathProject = (r'C:\Users\Account\OneDrive' r'\Documents\Projects\2016\Shared' r'\Project-1\Administrative\Phase-1\Final')
You almost got it! The issue is that raw strings cannot end with a backslash. Hence, this works:
pathProject = r'''C:\Users\Account\OneDrive \Documents\Projects\2016\Shared \Project-1\Administrative\Phase-1 \Final'''
Note that if you put spaces into the triple-quoted string to indent it, like in your example, there will be spaces in your string, which you don't want. If you like indents, you can use automatic line continuation with parentheses as suggested in Brendan's answer. Again, make sure that the lines don't end with a backslash.
The problem is that the ending
\ is interpreted as continuation (to eliminate the LF character; Joooeey’s answer was wrong on this) and the spaces at the beginning of other lines are also included. As a single raw string, this would work:
pathProject = r'''C:\Users\Account\OneDrive\ \Documents\Projects\2016\Shared\ \Project-1\Administrative\Phase-1\ \Final'''
I think I would prefer Brendan’s way, but you probably want to know how raw strings work (or not) for your case.