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
编辑—>感谢您的反馈build议解决scheme是相当简单,可以看到下面。
解:
import StringIO s = StringIO.StringIO(text) with open('fileName.csv', 'w') as f: for line in s: f.write(line)
一般方法:
##text=List of strings to be written to file with open('csvfile.csv','wb') as file: for line in text: file.write(line) file.write('\n')
要么
使用CSV编写器:
import csv with open(<path to output_csv>, "wb") as csv_file: writer = csv.writer(csv_file, delimiter=',') for line in data: writer.writerow(line)
要么
最简单的方法:
f = open('csvfile.csv','w') f.write('hi there\n') #Give your csv text here. ## Python will convert \n to os.linesep f.close()
我只是简单地将每行写入一个文件,因为它已经是CSV格式了:
write_file = "output.csv" with open(write_file, "w") as output: for line in text: output.write(line + '\n')
我不记得现在如何用换行符写行,但是:p
此外,你可能想看看这个关于write()
, writelines()
和'\n'
答案 。
你可以写入文件,就像你写任何普通文件一样。
with open('csvfile.csv','wb') as file: for l in text: file.write(l) file.write('\n')
如果以防万一,这是一个列表清单,你可以直接使用内置的csv
模块
import csv with open("csvfile.csv", "wb") as file: writer = csv.writer(file) writer.writerows(text)