Saya memiliki data yang sedang diakses melalui permintaan http dan dikirim kembali oleh server dalam format yang dipisahkan koma, saya memiliki kode berikut:
site= 'www.example.com'
hdr = {'User-Agent': 'Mozilla/5.0'}
req = urllib2.Request(site,headers=hdr)
page = urllib2.urlopen(req)
soup = BeautifulSoup(page)
soup = soup.get_text()
text=str(soup)
Isi teksnya adalah sebagai berikut:
april,2,5,7
may,3,5,8
june,4,7,3
july,5,6,9
Bagaimana cara menyimpan data ini ke dalam file CSV. Saya tahu saya dapat melakukan sesuatu di sepanjang baris berikut untuk mengulang baris demi baris:
import StringIO
s = StringIO.StringIO(text)
for line in s:
Tapi saya tidak yakin bagaimana sekarang menulis setiap baris dengan benar ke CSV
EDIT ---> Terima kasih atas umpan balik seperti yang disarankan, solusinya agak sederhana dan dapat dilihat di bawah.
Larutan:
import StringIO
s = StringIO.StringIO(text)
with open('fileName.csv', 'w') as f:
for line in s:
f.write(line)
StringIO
impor, jujur saja. Selain itu, solusi sebagaimana adanya mungkin tidak memisahkan baris, karenaf.write()
tidak menambahkan baris baru secara otomatis.Jawaban:
Cara umum:
ATAU
Menggunakan penulis CSV:
ATAU
Cara termudah:
sumber
with open(<path to output_csv>, "w", newline='') as csv_file:
for line in data:
. Tolong perbaiki itu. Terima kasih.'a'
(mode tambah) sebagai pengganti'w'
(mode tulis).Anda bisa menulis ke file seperti Anda menulis file biasa.
Jika untuk berjaga-jaga, itu adalah daftar daftar, Anda dapat langsung menggunakan
csv
modul bawaansumber
Saya hanya akan menulis setiap baris ke file, karena sudah dalam format CSV:
Namun, saya tidak ingat bagaimana menulis baris dengan jeda baris: p
Juga, Anda mungkin ingin melihat di jawaban ini sekitar
write()
,writelines()
dan'\n'
.sumber
Untuk melengkapi jawaban sebelumnya, saya menyiapkan kelas cepat untuk menulis ke file CSV. Ini membuatnya lebih mudah untuk mengelola dan menutup file yang terbuka dan mencapai konsistensi dan kode yang lebih bersih jika Anda harus menangani banyak file.
Contoh penggunaan:
Selamat bersenang-senang
sumber
Bagaimana dengan ini:
sumber