プログラムがユーザーに、読み取るファイル名と、処理されたデータを書き込むファイルを要求するとします。
プログラムが現在のディレクトリを変更して使用できるように、必要なファイルのディレクトリを取得する方法はありますか? または、そのファイルにアクセスする別の方法はありますか?
ユーザーがディレクトリとともに完全なファイル パスを入力すると、それを (sys.path を使用して) 解析し、そこで os.chdir() を実行できます。
ウェルプ、これはSOに関する私の最初の回答なので、質問を誤解して悪いスタートを切らないことを願っています. ここでは何も行きません...
率直に言って、以前のコメントと回答が提供した以上のことは言えません。現在の作業ディレクトリへの相対パスを「要求」する「移植可能な」方法はありますが、そのような設計の選択は、特にユーザーが考えていることに関して、それほど明確ではありません。これがすべて舞台裏のファイル操作である場合、それは 1 つのことですが、この場合、他の人と同様に、読み取りファイルと書き込みファイルの両方への完全なパスを要求することをお勧めします。完全を期すために、次から始めることができます。
# responses should be of the form
# full/path/from/home/directory/to/file/my_read_and_write_files.txt
fileToReadPath = input("Provide the full path to your read file: ")
fileToWritePath = input("Provide the full path to your write file: ")
with open(fileToReadPath, 'r') as readFile, open(fileToWritePath, 'w') as writeFile:
# do stuff with your files here!
# e.g. copy line by line from readFile to writeFile
for line in readFile:
writeFile.write(line)
作業が完了すると、コンテキスト マネージャー ( with
) が自動的にファイルを閉じることに注意してください。このような単純なものについては、上記のリンク、os モジュールに関するこのセクション、およびpython ドキュメントの IO 自体に関するこのセクションは、オプションとおもちゃの例を説明するのに非常に良い仕事をしていると思います。