利用利用python 读写读写csv文件文件
1、读文件、读文件
import csv
csv_reader = csv.reader(open("data.file", encoding="utf-8"))
for row in csv_reader:
print(row)
csv_reader把每一行数据转化成了一个list,list中每个元素是一个字符串。
2、写文件、写文件
读文件时,我们把csv文件读入列表中,写文件时会把列表中的元素写入到csv文件中。
list = ["1", "2", "3", "4"] out = open(outfile, "w")
csv_writer = csv.writer(out)
csv_writer.writerow(list)
可能遇到的问题:直接使用这种写法会导致文件每一行后面会多一个空行。
解决办法如下:
out = open(outfile, "w", newline="")
csv_writer = csv.writer(out, dialect="excel")
csv_writer.writerow(list)
在stackoverflow上找到了比较经典的解释,原来 python3里面对 str和bytes类型做了严格的区分,不像python2里面某些函数
里可以混用。所以用python3来写wirterow时,打开文件不要用wb模式,只需要使用w模式,然后带上newline=”。
3、示例、示例
简单读写
import csv
class writer:
def __init__(self):
self.dict = {
"标题": "标题",
"链接": "链接",
"服务": "服务",
"dsr": "dsr",
"店铺名": "店铺名",
"价格": "店铺名",
"付款人数": "付款人数",
"发货地": "发货地",
}
out = open("outfile.csv", "w", newline="")
self.csv_writer = csv.writer(out, dialect="excel")
self.csv_writer.writerow(self.dict)
def writer_to(self, key_value):
self.csv_writer.writerow(key_value)
if __name__ == "__main__":
a = writer()
new = {
"链接": "http://www.baidu.com",
"标题": "我是标题",
}
a.dict.update(new)
print(a.dict)
a.writer_to(a.dict.values())
结合爬虫
评论10