问题:在使用
Python 将爬取的数据存储为
CSV 文件时,打开会发现每两行数据之间多一行空白行,这样在导入到数据库的时候就会出现多很多 NULL 数据,
解决方法有两个,一个是在爬取之后处理,另一种是在爬取时处理,这里采取后一种(比较简单~博主比较懒)。
问题图:
网上有很多类似例子,但很多在VC6.0环境下不能使用,
例子在《把脉VC++》第6章源码基础上进行修改。主要修改内容包括:vc6.0中GetCount()没有,用GetSize代替;Tokenize采用AfxExtractSubString进行代替;书中源码在VC6.0环境下不能直接使用,但是整个编程思想还是很值得借鉴。在此向原作者致敬。例子主要功能包括:
1、实现对test.csv文件的读写(例子主要是读);
2、可以辨别CSV文件中的注释行(例子以符号“;”为注释行);
3、可以剔除空行;
注:由于本人非编程专业,代码不一定简洁,非喜勿喷,有问题可联系,共同探讨。
read_csv是pandas库中用于读取csv文件的函数,其定义为:
pandas.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer', names=None, index_col=None, usecols=None, dtype=None, skiprows=None, skipfooter=0, na_values=None, parse_dates=False, infer_datetime_format=False, keep_date_col=False, dayfirst=False, date_parser=None, nrows=None, skip_blank_lines=True, verbose=False, encoding=None, squeeze=False, thousands=None, decimal='.')
其中,常用的参数含义如下:
- filepath_or_buffer:csv文件路径或文件对象
- sep:分隔符,默认为逗号
- delimiter:分隔符,与sep参数作用相同
- header:指定哪一行作为表头,默认为第一行
- names:指定列名
- index_col:指定索引列
- usecols:指定要读取的列
- dtype:指定数据类型
- skiprows:跳过指定行数
- na_values:指定缺失值
- parse_dates:是否解析日期,默认为False
- nrows:读取的行数
- encoding:指定编码方式
以上是常用的参数,还有其他参数可以参考pandas官方文档。