stfpがどのように動作するかについての質問です。私は、SFTPに接続してファイルをダウンロードするとき、正確に何が「舞台裏で」起こっているのかを理解することが好奇妙です。Python sftpファイルを取得したときや読み込もうとしたらどうなりますか?
私はsftpサーバーに接続するいくつかの継承コードを使用していて、ディレクトリをリストしています。そこから
sftp = pysftp.Connection(host='xxxxx', username='xxxx', password='xxxxx', cnopts=cnopts)
sftp.cwd('/some_dir')
server_files = sftp.listdir()
、のは、私がpandas
データフレームにserver_files[1]
を読みたいとしましょう:
私は単にその代わりすなわち
pd.read_csv(server_files[1])
# FileNotFoundError: [Errno 2] No such file or directory:
、私は希望のファイルを読み込もうとすることはできません。私は最初にget
ファイルを以下のようにする必要があります。
sftp.get(server_files[1])
pd.read_csv(server_files[1])
# Success!
それは素晴らしいです。そこに問題はありません。しかし、私の質問は次のとおりです:
ここで、作業中のメモリのはserver_files[1]
オブジェクトが "保存されていますか?私はget
操作の前後にtype(server_file[1])
を実行しており、両方の結果がstr
であり、オブジェクト自体は変更されていないことを示しています。だから私は実際にそのファイルのデータがどこに保持されているのか分かりません。なぜ私はmy file = sftp.get(server_file[1])
のような何かをする必要はありませんか?ファイルの '名前'だけではどのように動作しますか?
これはコードを動作させる方法の問題ではなく、動作方法ですが、これを理解する上で助けていただければ幸いです。
乾杯
ジョン
これは意味をなさないと思います。ローカルの現在の作業ディレクトリを除いて、これはどこにありますか?私のPython環境では何も変わっていないので、私は見ることができます(つまり、新しい変数はなく、メモリは変更されません)。 –
"現在の作業ディレクトリ"は、デフォルトでスクリプトを実行したディレクトリです。 'print os.getcwd()'を実行してみてください。 –