2011-10-13 57 views
3

即時編寫一個正在cygwin中執行的python腳本。它所做的一件事就是調用pg_dump並傳遞一個文件名。我的問題是,python/cygwin傳遞給它一個posix路徑,而pg_dump的windows版本不知道該如何處理它。有什麼我可以打電話來將我的posix路徑轉換爲Windows路徑?如何使用cygwin從posix切換到Windows

我想這條道路

/cygdrive/c/Users/me/Code/myproj/pyBuildScript/src/snapshooter/working/sso.sql 

轉換爲

c:\Users\me\Code\myproj\pyBuildScript\src\snapshooter\working\sso.sql 

回答

3
cygpath -w 

你可以閱讀的手冊頁以上的交換機。其中

  • -w窗戶
  • -u用於UNIX
  • -a絕對路徑

你必須要小心逃脫,確保路徑參數是一個單殼字。

+0

所以,我在我的腳本之前運行cygpath? – scphantm

+0

是的,像:'your_program_here.py「$(cygpath -w」$ P「)」' –

1

你可以做到以下幾點:

>>> posix_str = "/cygdrive/c/Users/me/Code/myproj/pyBuildScript/src/snapshooter/working/sso.sql" 
>>> nt_str = "C:" + posix_str[11:] 
>>> nt_str = nt_str.replace("/", "\\") 
>>> print nt_str 
C:\Users\me\Code\myproj\pyBuildScript\src\snapshooter\working\sso.sql 
相關問題