Περισσότερα
Εγγραφή Python σε CSV γραμμή προς γραμμή
Έχω δεδομένα τα οποία προσπελαύνονται μέσω αίτησης http και αποστέλλονται πίσω από το διακομιστή σε μορφή διαχωρισμού με κόμμα, έχω τον ακόλουθο κώδικα :
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)
Το περιεχόμενο του κειμένου έχει ως εξής:
april,2,5,7
may,3,5,8
june,4,7,3
july,5,6,9
Πώς μπορώ να αποθηκεύσω αυτά τα δεδομένα σε ένα αρχείο CSV. Ξέρω ότι μπορώ να κάνω κάτι παρόμοιο με το παρακάτω για να επαναλαμβάνω γραμμή προς γραμμή:
import StringIO
s = StringIO.StringIO(text)
for line in s:
Αλλά δεν είμαι σίγουρος πώς να γράψω τώρα σωστά κάθε γραμμή στο CSV
EDIT---> Ευχαριστώ για την ανατροφοδότηση όπως προτάθηκε η λύση ήταν μάλλον απλή και μπορεί να δει κανείς παρακάτω.
Λύση:
import StringIO
s = StringIO.StringIO(text)
with open('fileName.csv', 'w') as f:
for line in s:
f.write(line)
78
3
Γενικός τρόπος:
Ή
Χρησιμοποιώντας το CSV writer :
Ή
Απλούστερος τρόπος:
Θα μπορούσατε απλώς να γράψετε στο αρχείο όπως θα γράφατε οποιοδήποτε κανονικό αρχείο.
Αν, για καλό και για κακό, πρόκειται για μια λίστα από λίστες, θα μπορούσατε να χρησιμοποιήσετε απευθείας την ενσωματωμένη ενότητα
csv
.Θα έγραφα απλώς κάθε γραμμή σε ένα αρχείο, αφού είναι ήδη σε μορφή CSV:
Δεν μπορώ'να θυμηθώ πώς να γράψω γραμμές με αλλαγή γραμμής αυτή τη στιγμή, όμως :p
Επίσης, ίσως θα θέλατε να ρίξετε μια ματιά στην αυτή την απάντηση σχετικά με την
write()
, τηνwritelines()
και την'\n'
.