問題タブ [ftplib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - FTP経由でサーバーにファイルをコピーした後のファイルサイズの違い
ローカル ディレクトリ内にある Web サーバーを更新するための PHP スクリプトを作成しました。スクリプトを Python に移行しています。ほとんどの場合は問題なく動作しますが、PUT コマンドを実行すると、ファイルのサイズが変化するように見えます。したがって、ファイルのサイズはサーバー上のファイルのサイズとは異なります。
FTP サーバーからファイルを再度ダウンロードすると、唯一の違いは CR/LF マークです。同じスクリプトが更新するファイルのサイズを比較しているため、これは私を悩ませます。また、何らかの意味がある場合、スクリプトは ftp_put を介して PHP で完全に動作します。
助言がありますか?
python - ファイルのリストを解析してPythonでファイル名だけを取得するにはどうすればよいですか?
では、Python のftplibを使用して FTP サーバーからログ ファイルのリストを取得するとします。そのファイルのリストを解析して、リスト内のファイル名 (最後の列) だけを取得するにはどうすればよいですか? 出力例については、上記のリンクを参照してください。
python - ftplibが進行中のファイルをダウンロードできないようにしますか?
制御下にないリモートftpサーバーから監視/ダウンロードするためのftpシステム設定があります。スクリプトはリモートFTPに接続し、サーバー上のファイルのファイル名を取得します。次に、そのファイルが既にダウンロードされているかどうかを確認します。ダウンロードされていない場合は、ファイルをダウンロードしてリストに追加します。
最近、リモートftp側の誰かが巨大な単一ファイル(> 1GB)をコピーすると、スクリプトがウェイクアップして新しいファイルを確認し、コピーされているファイルのダウンロードを開始するという問題が発生しました。
これを確認する最良の方法は何ですか?数秒待ってファイルサイズを取得し、ファイルサイズをもう一度確認して、ファイルサイズが増加しているかどうかを確認することを考えていました。増加していない場合は、ダウンロードします。ただし、時間が問題になるため、すべてのファイルセットを数秒待って、ファイルサイズが大きくなったかどうかを確認することはできません。
これを行うための最良の方法は何でしょうか。現在、すべてがpythons ftplibを介して行われていますが、前述の方法を使用する以外に、これをどのように行うことができますか。
繰り返しになりますが、リモートftpサイトを制御することはできません。
ありがとう。
UPDATE1:
名前を変更しようとするとどうなるか考えていました...ftpに対する完全なアクセス許可があるため、ファイルのアップロードが進行中の場合、名前変更コマンドは失敗しますか?
ここにはリアルオプションはありません...そうですか?
UPDATE2:転送が開始されると、テストしたftpのいくつかが自動的にスペースを割り当てるように見える興味深いものがあります。
たとえば、200MBのファイルをFTPサーバーに転送する場合。転送がアクティブな間、FTPサーバーに接続し、アップロード中にサイズを実行するとします。サイズは200mbです。ファイルは10%しか完成していませんが。
また、アクセス許可はランダムに設定されているようです。IISに付属のFTPサーバーは、ファイルのコピーが完了した後にアクセス許可を設定します。他の古いftpサーバーのいくつかは、ファイルを送信するとすぐにそれを設定します。
:'(
python - Pythonでzipファイルをダウンロードしてディスクに書き込む特別なトリックはありますか?
Python の ftplib を使用して、リモート FTP サイトから zip ファイルを FTP 送信しています。次に、それをディスクに書き込もうとします。ファイルの書き込みは機能しますが、WinZip または WinRar を使用して zip を開こうとするほとんどの試みは失敗します。どちらのアプリも、ファイルが破損していると主張しています。ただし、奇妙なことに、右クリックして WinRar を使用してファイルを抽出しようとすると、ファイルが抽出されます。
明確にするために、ファイルの書き込みは機能しますが、一般的な zip アプリ内で開くことはできませんが、同じアプリを使用して解凍します。Python zipfile モジュールは、zip の抽出に失敗することはありません。
FTP サイトから zip ファイルを取得するために使用しているコードを次に示します (不適切なタブは無視してください。それは問題ではありません)。
python - Pythonでstorbinaryを使用した部分アップロード
を使用して画像をダウンロードするためのPythonコードをいくつか作成しました
を使用して FTP サイトにアップロードします。
しかし、私は問題を抱えています。画像ファイルが部分的にしかアップロードされない場合があるため、下の 20% 程度が切り取られた画像が取得されます。ローカルにダウンロードしたバージョンを確認したところ、イメージ全体を正常にダウンロードできたので、storbinary に問題があると思われます。すべてのファイルを正しく開閉していると思います。storbinary で部分的なアップロードが行われる理由について、何か手がかりはありますか?
更新: Python シェルでコマンドを実行すると、アップロードが正常に完了します。スクリプトとして実行した場合と異なる理由がわかりません...
python - PythonでFTP経由でファイルに書き込む
だから私はこのページのドキュメントに従いました: http://docs.python.org/library/ftplib.html#ftplib.FTP.retrbinary
そして、「retrbinary」が何をするのかについて混乱しているかもしれません...私はそれがバイナリファイルを取得し、そこからそれを開いてそのファイルに書き出すことができると考えています。
これが私に問題を与えている行です...
私が理解していないのは、temp.txtに書き出したいので、試していました
しかし、エラーが発生しました。FTP 接続を確立し、pwd()、cwd()、rename() などを実行できました。
PS私はこれを可能な限りググろうとしています、ありがとう!
python - ファイルがフォルダかどうかをチェックするftplib?
リモート ftp 上のファイルがフォルダーであるか、ftplib を使用していないかを確認するにはどうすればよいですか?
私が今持っている最善の方法は、nlstを実行し、各ファイルでサイズを呼び出すことを繰り返すことです.ファイルがエラーになった場合、それはフォルダですか?
より良い方法はありますか?約 12 の異なる ftp サーバー (多くは非常に古いもの) があるため、list の出力を解析できません。
私は何をすべきか?
python - FTPアップロード/ダウンロード用のPythonライブラリ?
さて、少し前向きに:
リモートftpサイトを監視するPythonで記述されたサービス/デーモンがあります。これらのサイトは私たちの指揮下にありません。それらのいくつかは私たちがdel/rename / writeアクセス権を持っておらず、いくつかは非常に古いftpソフトウェアを実行しています。特定のコマンドが機能しないようなもの。これらのftpには標準化がなく、私たちの管理外です(政府)。
約1年前、私は社内用のftpラッパーライブラリを作成しました。これは、基本的に、履歴書のアップロード/履歴書のダウンロード/ファイルの確認が現在書き込まれていないなどの機能を追加します。 werid/非標準ソフトウェアを実行しているftpサーバーは常にラッパーlibrary/ftplibと戦っていました。
基本的に私はftplibをあきらめました。代替手段はありますか?私はほとんどのftpの代替案を見てきましたが、それらすべてに機能の重要なコンポーネントが欠けています。
どちらを選択しても、Python 2.5.2で実行する必要があります(変更できません)。Linux / Windows/HP-UXで実行する必要があります。
アップデート:
申し訳ありませんが、私が見た代替案をあなたに伝えるのを忘れました:
- ftputil、問題は、再開のアップロード/ダウンロードや、オフセットを指定してファイルを部分的にダウンロードするようなものをサポートしていないことです。
- Pycurlはよさそうだった、もう一度見てみよう。
python - Python ftplib - 複数のファイルをアップロードしていますか?
私はグーグルで調べましたが、1つのファイルをアップロードする方法しか見つかりませんでした...そして、ローカルディレクトリからリモートftpディレクトリにすべてのファイルをアップロードしようとしています。これを達成する方法はありますか?
python - PythonFTPアプリケーションのプロキシ
私はPythonftplibでFTPクライアントを開発しています。プロキシサポートを追加するにはどうすればよいですか(私が見たほとんどのFTPアプリはそれを持っているようです)?私は特にSOCKSプロキシについて考えていますが、他のタイプも考えています... FTP、HTTP(FTPプログラムでHTTPプロキシを使用することも可能ですか?)
それを行う方法はありますか?