Bagaimana untuk memuat naik fail menggunakan perpustakaan permintaan Python?
P粉071559609
2023-08-16 18:44:37
<p>Saya menggunakan perpustakaan permintaan Python untuk melaksanakan tugas mudah, iaitu memuat naik fail. Saya telah mencari di Stack Overflow dan tiada siapa yang nampaknya mengalami masalah yang sama, di mana fail tidak diterima oleh pelayan: </p>
<pre class="brush:php;toolbar:false;">permintaan import
url='http://nesssi.cacr.caltech.edu/cgi-bin/getmulticonedb_release2.cgi/post'
files={'files': open('file.txt','rb')}
values={'upload_file' : 'file.txt' , 'DB':'photcat' , 'OUT':'csv' , 'SHORT':'short'}
r=requests.post(url,files=files,data=nilai)</pre>
<p>Saya mengisi nilai kata kunci 'upload_file' dengan nama fail saya kerana jika saya biarkan kosong ia akan berbunyi: </p>
<pre class="brush:php;toolbar:false;">Ralat - Anda mesti memilih fail untuk dimuat naik! </pra>
<p>Sekarang saya mendapat: </p>
<pre class="brush:php;toolbar:false;">Saiz fail.txt ialah bait, berjaya dimuat naik!
Keputusan perkhidmatan pertanyaan: Terdapat 0 baris secara keseluruhan. </pra>
<p>Ini hanya berlaku jika fail kosong. Jadi saya tidak tahu bagaimana untuk menghantar fail saya dengan jayanya. Saya tahu fail itu sah kerana jika saya mengisi borang secara manual dan melawati tapak, ia mengembalikan senarai padanan yang bagus, iaitu apa yang saya mahukan. Saya sangat menghargai semua petua. </p>
<p>Beberapa utas lain yang berkaitan (tetapi jangan selesaikan masalah saya): </p>
<ul>
<li>Gunakan skrip Python untuk menghantar fail melalui POST</li>
<li>http://docs.python-requests.org/en/latest/user/quickstart/#response-content</li>
<li>Gunakan permintaan untuk memuat naik fail dan menghantar data tambahan</li>
<li>http://docs.python-requests.org/en/latest/user/advanced/#body-content-workflow</li>
</ul><p><br /></p>
(2018) Pustaka permintaan Python baharu memudahkan proses ini, kita boleh menggunakan pembolehubah 'fail' untuk menunjukkan bahawa kita ingin memuat naik fail berkod berbilang bahagian
Jika
upload_file
merujuk kepada fail, gunakan:Kemudian
permintaan
akan menghantar badan permintaan POST borang berbilang bahagian denganrequests
将发送一个多部分表单POST请求体,其中upload_file
字段设置为file.txt
medan ditetapkan kepada kandungan failfile.txt
.Nama fail akan disertakan dalam pengepala mime medan tertentu:
Sila beri perhatian kepada
filename="file.txt"
parameter.Jika anda memerlukan lebih kawalan, anda boleh menggunakan tupel sebagai
files
nilai peta, panjang tupel hendaklah antara 2 dan 4. Elemen pertama ialah nama fail, diikuti dengan kandungan, secara pilihan termasuk pemetaan pengepala jenis kandungan dan pengepala lain:Ini akan menetapkan nama fail alternatif dan jenis kandungan, mengetepikan pengepala pilihan.
Jika anda mahu keseluruhan isi permintaan POST datang daripada fail (tiada medan lain dinyatakan), jangan gunakan parameterdata. Anda juga mungkin mahu menetapkan pengepala
files
参数,直接将文件作为data
进行POST。您可能还希望设置一个Content-Type
dan POS fail terus sebagaiContent-Type
, jika tidak, tiada pengepala akan ditetapkan. Lihat Permintaan Python - SIARAN data daripada fail.