python在处理CSV文件时,字符串和列表写入的区别
2018-08-30 17:15
876 查看
概述
Python在处理CSV文件时,如果writerow的对象是<type 'unicode'>字符串时,写入到CSV文件时将会出现一个字符占一个单元格的情况:
但是将字符串转换为列表类型时,进行writerow写入即可实现,writerow一个列表只占一个单元格:
代码:
#encoding=utf-8 #不打开浏览器进行操作 import sys,csv,codecs import time from lxml import etree reload(sys) sys.setdefaultencoding('utf-8') from selenium import webdriver option = webdriver.ChromeOptions() option.add_argument("headless") driver = webdriver.Chrome(chrome_options=option) # driver = webdriver.Chrome() driver.get("https://www.kanzhun.com/xs/?ka=head-salary") print([driver.title]) #打开CSV文件 csvfile=codecs.open('C:\Users\Desktop\test.csv','wb','gbk') writer = csv.writer(csvfile) writer.writerow(driver.title) #获取城市工资排名 aa=driver.find_elements_by_xpath('/html/body/div/section[1]/div[3]/dl[1]/dd/ul/li/i') bb=driver.find_elements_by_xpath('/html/body/div/section[1]/div[3]/dl[1]/dd/ul/li/a') cc=driver.find_elements_by_xpath('/html/body/div/section[1]/div[3]/dl[1]/dd/ul/li/span') print('======地区工资排行(TOP10)======') writer.writerow([u'======地区工资排行(TOP10)======']) for (i,o,p) in zip(aa,bb,cc): i = i.text o = o.text p = p.text print(type(p)) ss = [i, o, p] writer.writerow(ss) print(i+'...'+o+'...'+p) #获取公司工资排名 aa=driver.find_elements_by_xpath('/html/body/div/section[1]/div[3]/dl[2]/dd/ul/li/i') bb=driver.find_elements_by_xpath('/html/body/div/section[1]/div[3]/dl[2]/dd/ul/li/a') cc=driver.find_elements_by_xpath('/html/body/div/section[1]/div[3]/dl[2]/dd/ul/li/span') print('======公司工资排行(TOP10)======') writer.writerow([u'======公司工资排行(TOP10)======']) for (i,o,p) in zip(aa,bb,cc): i = i.text o = o.text p = p.text ss = [i, o, p] writer.writerow(ss) print(i+'...'+o+'...'+p) #获取职位工资排名 aa=driver.find_elements_by_xpath('/html/body/div/section[1]/div[3]/dl[3]/dd/ul/li/i') bb=driver.find_elements_by_xpath('/html/body/div/section[1]/div[3]/dl[3]/dd/ul/li/a') cc=driver.find_elements_by_xpath('/html/body/div/section[1]/div[3]/dl[3]/dd/ul/li/span') print('======职位工资排行(TOP10)======') writer.writerow([u'======职位工资排行(TOP10)======']) for (i,o,p) in zip(aa,bb,cc): i = i.text o = o.text p = p.text ss = [i,o,p] writer.writerow(ss) print(i+'...'+o+'...'+p) csvfile.close() driver.quit()
CSV文件:
注意:
其中开头的reload(sys)和打开csv文件时的‘gbk’都是辅助解决字符编码问题的。
相关文章推荐
- python 处理csv文件去除第一行,并写入另一个csv
- python 二维列表映射写入csv文件, 并上传OSS
- ean13码的生成,python读取csv中数据并处理返回并写入到另一个csv文件中
- java处理字符编码的常见问题(最近在弄字符串设置编码写入文件)
- Python_使用csv模块解析csv文件(处理Excel表格)
- Python CSV文件处理/读写及With as 用法
- Python处理日志之取得文件列表(更新)
- 利用python的csv库处理csv文件
- Python写入CSV文件的方法
- 002_010 Python 处理字符串中的Zip文件 你的程序收到了一个字符串,内容是一个ZIP文件,需要读取zip文件的信息
- Python写入CSV文件的方法
- Python处理日志之取得文件列表
- 正则表达式分割字符串但是不分割字符串中引号中间的数据,处理CSV文件必备!!
- [Jmeter]通过批处理调用java,java从CSV动态读取登录的用户名和密码,并将其作为参数组合成字符串,写入外部.bat文件,然后通过Java执行这个外部批处理文件
- Python 处理CSV文件
- 写入文件 csv 与 xls的区别
- python文件中字符串处理的脚本示例
- Python 用file 对象和open方法处理文件的区别
- Python 处理CSV文件
- Python 2.7.3 将列表中文数据写入文件