-2

ネットワーク ドライブ内のいくつかのファイルにアクセスしたいと考えています。私のネットワークドライブは「networkfile」と呼ばれています。これを Windows コマンド ラインで実行すると、うまくいきます: net use \networkfile\Programs.

ただし、Pythonスクリプトに入れると機能しませんでした(私はPython3を使用しています)。私は試した:

a = os.system("net use O:\networkfile\Programs")

a = os.system("net use \networkfile\Programs")

a = os.system("net use \networkfile\Programs")

a = subprocess.run("net use O:\networkfile\Programs", shell=True, stdout=subprocess.PIPE)

それらのどれも機能しません。エラーは次のとおりです。「システム エラー 67 が発生しました。ネットワーク名が見つかりません。」

誰もこれを経験したことがありますか?ご意見をお聞かせください。

ありがとう、

4

1 に答える 1

0

あなたの文字列"net use O:\networkfile\Programs"は、Pythonインタープリターによって次のように評価されています。

net use O:
etworkfile\Programs

\nは改行文字として解釈されるためです。いくつかの異なる方法でこれを回避できます

  1. バックスラッシュが特別に扱われないように (ほとんどの場合) 、生の文字列 (ここの 4 つの段落を参照) を使用してください。

  2. バックスラッシュ自体をエスケープして、リテラルのバックスラッシュに評価されるようにします (すべて"\"を にします"\\")

  3. ライブラリを使用しos.pathて文字列を生成し、オペレーティング システムに関係なく正しいディレクトリ セパレータが使用されるようにします。

于 2017-11-28T19:00:29.063 に答える