Anda dapat mengonversi string ke objek file menggunakan io.StringIO
dan kemudian meneruskannya ke csv
modul:
from io import StringIO
import csv
scsv = """text,with,Polish,non-Latin,letters
1,2,3,4,5,6
a,b,c,d,e,f
gęś,zółty,wąż,idzie,wąską,dróżką,
"""
f = StringIO(scsv)
reader = csv.reader(f, delimiter=',')
for row in reader:
print('\t'.join(row))
versi lebih sederhana dengan split()
di baris baru:
reader = csv.reader(scsv.split('\n'), delimiter=',')
for row in reader:
print('\t'.join(row))
Atau Anda dapat dengan mudah split()
menggunakan string ini menjadi garis menggunakan \n
sebagai pemisah, dan kemudian split()
setiap baris menjadi nilai, tetapi dengan cara ini Anda harus sadar akan mengutip, jadi lebih baik menggunakan csv
modul.
Pada Python 2 Anda harus mengimpor StringIO
sebagai
from StringIO import StringIO
sebagai gantinya.
.split('\n')
, Anda bisa menggunakan.splitlines()
.Sederhana - modul csv juga berfungsi dengan daftar:
sumber
.split('\n')
akan melakukan hal-hal aneh jika bidang Anda berisi baris baru.Doc resmi untuk
csv.reader()
https://docs.python.org/2/library/csv.html sangat membantu, yang mengatakansumber
Untuk mem-parsing file CSV:
sumber
3, "4,5,6, 6
harus diperlakukan sebagai tiga bidang, bukan lima.Seperti yang telah ditunjukkan orang lain, Python menyertakan modul untuk membaca dan menulis file CSV. Ini bekerja cukup baik selama karakter input tetap dalam batas ASCII. Jika Anda ingin memproses penyandian lain, lebih banyak pekerjaan diperlukan.
The dokumentasi Python untuk modul csv alat perpanjangan csv.reader, yang menggunakan antarmuka yang sama tetapi dapat menangani pengkodean lainnya dan kembali unicode string. Cukup salin dan tempel kode dari dokumentasi. Setelah itu, Anda dapat memproses file CSV seperti ini:
sumber
'utf-8-sig'
sebagai codec sebagai ganti'utf-8'
.Per dokumentasi:
Ubah saja string Anda menjadi daftar elemen tunggal.
Mengimpor StringIO tampaknya sedikit berlebihan bagi saya ketika contoh ini secara eksplisit ada dalam dokumen.
sumber
https://docs.python.org/2/library/csv.html?highlight=csv#csv.reader
Jadi, a
StringIO.StringIO()
,str.splitlines()
atau bahkan generator semuanya baik.sumber
Inilah solusi alternatif:
Berikut dokumentasinya
sumber
Gunakan ini untuk memiliki csv dimuat ke dalam daftar
sumber
Panda adalah perpustakaan yang cukup kuat dan pintar membaca CSV dengan Python
Contoh sederhana di sini, saya punya file example.zip dengan empat file di dalamnya.
Setelah Anda memiliki data, Anda dapat memanipulasi untuk bermain dengan daftar atau format lain.
sumber