2016-05-18 4 views
0

Windowsのcmd.exebashの両方を使用しているので、Windowsパス出力にos.getcwd()でアクセスしようとすると、Pythonはドライブ文字とコロンで始まるパスにアクセスしようとしています。 C:\であり、bashは正しく無効なUNIXパスを決定します。この例では、この例では/c/で開始する必要があります。しかし、Windowsパスを相当に変更するにはどうすればよいですか?iffと同等です。スクリプトはbash以内で実行されていますか?cwdをシェル依存形式で取得するには?

+0

関連:[cmd.exeのか、GNU mingwのシェルが実行されているかどうかを確認することができますスクリプトを実行する方法](HTTPS:/ /stackoverflow.com/q/34651196/321973) –

答えて

0

醜いしかし、あなたは、Windowsの環境変数SHELL=bashを作成しない限り、動作するはずです:

def msysfy(dirname): 
    import os 
    try: 
     shell = os.environ['SHELL'] 
    except KeyError: # by default, cmd.exe has no SHELL variable 
     shell = 'win' 
    if os.path.basename(shell)=='bash' and dirname[1] == ':': 
     return '/' + dirname[0].lower() + '/' + dirname[2:] 
     # don't worry about the other backslashes, msys handles them 
    else: 
     return dirname 
関連する問題