2017-08-20 21 views
2

Windowsのcmdを使用してサーバー上にあるファイルを操作しようとしています。私がしていることは、基本的に次のことです:メモ帳でサーバー上のファイルを開いて、WindowsのcmdでPythonで

import os 
os.system('pushd '+ \\Server\PathToFile) 
os.system('start Notepad '+ NameOfFile) 

私はcmdで手で入力すると、この点が問題になります。私がそれをPythonでやろうとすると、うまくいきません。私は、このエラーメッセージが表示されます:

CMD.EXE was started with the path given above as current directory. 
UNC-paths are not supported, therefore the windows-directory is used as 
current directory. 

実際のエラーメッセージは、私はそれを翻訳し、私はそれが理解しやすいですかどうかわからない理由です、ドイツ語です。実際に何が起こるかは、メモ帳が現在のファイルを探すパスが、指定したパスの代わりにC:\ Windowsであるということです。

答えて

4

Windowsでは、現在のディレクトリをUNCパスに設定することはサポートされていません。これは、2つの別々のos.systemコマンドであるため、いずれにしても機能しません。

このパスにドライブをマウントしてos.chdirを使用しても、それはもっと複雑になります。

現在のディレクトリを変更する必要はありません。さらにos.systemは推奨されていません。代わりにsubprocessを使用することをおすすめします。

ので、ファイルのフルパスを提供するコマンドを実行するようにコードを変更します。

import subprocess 
subprocess.call(["start","notepad",os.path.join("\\Server\PathToFile",NameOfFile)],shell=True) 

が、私はあなたが(Windowsのデフォルトの団体は、おそらく意志

os.startfile(os.path.join("\\Server\PathToFile",NameOfFile)) 

としたほうが良いと思います疑いますバックグラウンドで "メモ帳"を開くと、それは1行で&シンプルで&ユーザーは、ウィンドウ内のテキストファイルの関連付けを変更するだけで使用できるエディタを変更することもできます)

関連する問題