I'm writing a Python script that accepts file paths as strings, parses them, appends a command name, and builds a list, which is then passed to subprocess.Popen()
for execution. This script is to handle both Unix and Windows file paths, and ultimately should run on both systems.
When I run this under Unix, if I give a Windows path that inadvertently contains an escape character (e.g. UsersAdministratorin
), Python will interpret the embedded
as the backspace character. I want to prevent that from happening.
As far as I know, there's no function or method to denote a string variable as a raw string. The 'r'
modifier only works for string constants.
So far, the closest I've been able to get is this:
winpath = "C:UsersAdministratorin"
winpath = winpath.replace('','\b')
winpathlist = winpath.split('\')
At this point, winpathlist should contain ['C:','Users','Administrator','bin']
, not ['C','Users','Administratorx08in']
.
I can add additional calls to winpath.replace()
to handle the other escapes I might get -- a
, f
,
,
,
, v
-- but not x
.
Is there a more pythonic way to do this?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…