python在处理CSV文件时,字符串和列表写入的区别
概述
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文件时,字符串和列表写入的区别的更多相关文章
- 【python】写csv文件时遇到的错误
1.错误 在许多文件中,写入csv文件时都加"wb",w指写入,b指二进制 如: csvwrite=csv.writer(open("output.csv",& ...
- python中操作csv文件
python中操作csv文件 读取csv improt csv f = csv.reader(open("文件路径","r")) for i in f: pri ...
- python3写入csv文件时中文为乱码
今天修改李万的爬虫时把页面上的中文写入csv文件时,中文总是乱码.通过上网搜索得到解决.解决的办法是打开文件是需加参数 encoding='utf-8-sig' .感谢博客园的菜鸟Alex.他相关博客 ...
- JS在生成csv文件时,","逗号问题处理.
在生成csv文件时,发现一个问题,因为csv文件本身是依靠逗号进行分列的,所以内容中有逗号时也被强制分列了,处理方法很简单,为内容加上双引号(英文格式)就可以了. 如: "11111,222 ...
- 【 D3.js 进阶系列 — 1.2 】 读取 CSV 文件时乱码的解决方法
在 D3 中使用 d3.csv 读取 CSV 文件时,有时会出现乱码问题. 怎么解决呢? 1. 乱码问题 使用 d3.csv 读取 xxx.csv 文件时.假设 xxx.csv 文件使用的是 UTF- ...
- Python实现对CSV文件的读写功能
我们要处理csv文件,首先要的导入csv模块 import csv #读取csv文件def readCsv(path): #传入变量csv文件的路径 list=[] #定义一个空列表 with ope ...
- Python黑帽编程2.3 字符串、列表、元组、字典和集合
Python黑帽编程2.3 字符串.列表.元组.字典和集合 本节要介绍的是Python里面常用的几种数据结构.通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组或多组数据进行存储.查询 ...
- Python在向CSV文件写中文时乱码的处理办法
前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode.当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的.对中文 ...
- python导入csv文件时,出现SyntaxError
背景 np.loadtxt()用于从文本加载数据. 文本文件中的每一行必须含有相同的数据. *** loadtxt(fname, dtype=<class 'float'>, commen ...
随机推荐
- 架构设计之Spring-Session的分布式集群会话管理
发表于 2017-04-24 | 160次围观 | 分类于 架构设计 | 暂无评论 前言 通常在web开发中,回话管理是很重要的一部分,用于存储与用户相关的一些数据.对于JAVA开 ...
- cocos2d-x聊天气泡
用cocos2d-x做聊天气泡在网上搜索了一下提示用CCScale9Sprite,这个类可以不缩放边角只 缩放中心,正好符合气泡的要求. 说一下思路,头像都是用cocosbuilder做的ccb,在代 ...
- 实现itoa()
上代码之前先讲个笑话:曾经有位面试官问:“你实现过 唉踢哦诶(音) 吗”? 我第一个想到的是各种OA系统,心想那玩意不多是Java实现的吗...过一会想明白了,瞬间石化... #include < ...
- tftp server setup
今天开始调试ARM的板子,要通过tftp下载到板子上,所以又要配置tftp服务器,真的烦死了… (本人酷爱装系统,所以经常都要搞配置) 因为之前已经在Ubuntu下搭建过很多次tftp服务器了,但是一 ...
- Jquery仿IGoogle实现可拖动窗口
google可谓是ajax的特效用的淋漓尽致,google suggest, google map,igoogle 可拖动窗口等等...今天要做一个网站的类似效果,与编程人生的站长沟通了一下,仿照iG ...
- 在其模块列表中有一个错误模块“ManagedPipelineHandler”。
C:\Windows\Microsoft.NET\Framework\v4.0.30319 命令行: aspnet_regiis -i
- Autofac IoC容器基本实战【2】
原文:http://www.cnblogs.com/liping13599168/archive/2011/07/16/2108209.html Autofac是一款IOC框架,比较于其他的IOC框架 ...
- bootstrap基础学习五篇
bootstrap表格 Bootstrap 提供了一个清晰的创建表格的布局.下表列出了 Bootstrap 支持的一些表格元素: 标签 描述 <table> 为表格添加基础样式. < ...
- typescript 实现函数重载
class Demo { // #region 声明 log() : void; log(arg1: string): void; log(arg1: number, arg2: string): v ...
- AWS系列-EC2实例选择镜像
Centos Ubuntu Redhat 打开EC2控制台,点击启动实例,选择AWS Marketplace Centos.org说明为centos官网镜像 如下图,这种镜像是收费的镜像 Ubuntu ...