我想用python 3.3
替換當前工作目錄下的文件中的某些內容。我有:Python 3:我怎樣才能讓os.getcwd()和re.sub()一起玩呢?
def ReplaceInFile(filename, replaceRegEx, replaceWithRegEx):
''' Open a file and use a re.sub to replace content within it in place '''
with fileinput.input(filename, inplace=True) as f:
for line in f:
line = re.sub(replaceRegEx, replaceWithRegEx, line)
#sys.stdout.write (line)
print(line, end='')
,我使用它像這樣:
ReplaceInFile(r'Path\To\File.iss', r'(#define RootDir\s+)(.+)', r'\g<1>' + os.getcwd())
不幸的是我,我的路徑是C:\ Tkbt \啓動,所以我得到的置換爲:
#define RootDir C: kbt\Launch
ie ie interpreting \t
as tab。
因此它看起來像我需要告訴python加倍逃脫從os.getcwd()
一切。我想也許.decode('unicode_escape')
可能是答案,但事實並非如此。有人可以幫我嗎?
我希望有一個解決方案不是「找到替換每個'\'
與'\\'
」。
這不僅僅是os.getcwd() - 這是任何路徑。 re.escape()也不起作用,因爲它轉義了':' - C:\ Tkbt \啓動 – gremwell
不能使用'/'而不是\? –
@fp:'os.getcwd()'返回帶反斜槓的路徑。這不是路徑文字。 –