2013-12-11 48 views
0

我有一個python腳本運行在windows中,使用os.environ['UserProfile']來檢測用戶配置文件。我需要修改此路徑才能執行某些操作。在Windows中編輯路徑名 - 一般化

例如。我讀:

C:\Users\User\Desktop 

,並需要建立:

C':\'Users'\'User'\'Desktop 

基本上圍繞所有非字母和非數字單引號。

我想知道是否有最好的,最一般的方法來做到這一點。 resplitos.join?理想情況下,我想完全通用,獨立於路徑名或操作系統。

這裏是我當前的笨重的代碼來實現它:

for letter in amend_dir: 
    if amend_dir[track] not in string.ascii_letters: 
     if amend_dir[track-1] in string.ascii_letters: 
      if amend_dir[track+1] not in string.ascii_letters: 
       newer_letter = "'"+letter 
    if amend_dir[track] not in string.ascii_letters: 
     if amend_dir[track-1] not in string.ascii_letters: 
      if amend_dir[track+1] in string.ascii_letters: 
       newer_letter = letter+"'" 
    if amend_dir[track] not in string.ascii_letters: 
     if amend_dir[track-1] in string.ascii_letters: 
      if amend_dir[track+1] in string.ascii_letters: 
        newer_letter = "'"+letter+"'" 

編輯:

我沒有與操作系統模塊的運氣,但是這2班輪很好地工作:

修改日期=(參數['default_dir']。替換('\','''')) amend2_dir =(amend_dir.replace(「:'\'」,「':''))

+0

檢查http://stackoverflow.com/questions/2422798/python-os-path-join-on-windows –

回答

1

已經有一般了ised在標準模塊os.path中使用的路徑名操作工具很多。

請記住,Windows使用\L:表示法是不尋常的,os.path模塊爲您處理這個乾淨。

0

怎麼是這樣的:

import re 
x = r'C:\Users\User\Desktop' 
re.sub(r'([^\w]+)',"'\g<1>'",x)