私が行っていることの簡単な概要:特定のネットワーク上の場所でファイルをコピー、削除、作成することを含む、ネットワークディレクトリ内のPythonとのPDFマージルーチンを自動化しようとしています。私の言語があまり正確でない場合はお詫びします。
私はPython3.6を使用してWindows7でコーディングしています。プログラムは他のマシンに配布する必要があるため、ローカルおよび一時的な修正はおそらく役に立ちません。私が書いたコードは完全に機能し、すべてのローカルフォルダーとファイルで正常に機能しますが、ネットワーク上でそれを使用する必要があるため、必要なフォルダーにアクセスするのに問題があります。
これが私が試したことです:
os.system("pushd " + "\\" + "\\netWorkDrive\Reports")
check_output("pushd " + "\\" + "\\netWorkDrive\Reports", shell=True)
pushd
そして、popd
仕事の罰金は、ちょうどその時、CMDに入力されたが、私のpythonを介してシステムコールを行うとき、彼らは通過しません。システムコールを送信すると、正しく実行されますが、現在のディレクトリを「cd」すると、以前のディレクトリにいることが示されます。cmdを使用して手動で実行した場合、すべてが希望どおりに機能します。私はこの問題をグーグルで検索しましたが、機能する/役立つものを見つけることができませんでした。何か提案をいただければ幸いです。問題をさらに明確にする必要がある場合はお知らせください。
ありがとうございました!
このような方法でpushd / popdを使用することはなく、必要なファイル操作のパスにネットワークパスを含むフルパスを含めるだけです。
ただし、本当に作業ディレクトリを変更する必要がある場合は、Pythonを使用してこれを行います。
import os
original_working_directory = os.getcwd()
# do stuff
new_networked_directory = r'\\server\share\folder'
# change to the networked directory
os.chdir(new_networked_directory)
# do stuff
#changeback to original working directory
os.chdir(original_working_directory)
# do more stuff
「一時ドライブ」などは本当に必要ないはずです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加