唐山企业网站模板建站,综合门户网站源码,网页设计欣赏app,wordpress 后台 logocsv库在python3中是自带的。
利用它可以方便的进行csv文件内容的读取。
注意#xff1a;要以gbk的编码形式打开#xff0c;因为WPS的csv文件默认是gbk编码#xff0c;而不是utf-8。
01-读取表头并在打印每一行内容时一并输出表头
表头为第1行#xff0c;现在要读取并打…csv库在python3中是自带的。
利用它可以方便的进行csv文件内容的读取。
注意要以gbk的编码形式打开因为WPS的csv文件默认是gbk编码而不是utf-8。
01-读取表头并在打印每一行内容时一并输出表头
表头为第1行现在要读取并打印出第2行的内容并附加上表头信息的代码如下
import csvfile_path rE:\Temp\test01.csvwith open(file_path, r, newline, encodinggbk) as file:# 创建CSV字典文件读取器reader csv.DictReader(file)# 读取第二行的各列内容并打印second_row next(reader)for column_title, value in second_row.items():print(f{column_title}: {value})
运行效果如下
如果要读取第3行的内容代码如下
import csvfile_path rE:\Temp\test01.csvwith open(file_path, r, newline, encodinggbk) as file:# 创建CSV字典文件读取器reader csv.DictReader(file)# 读取第三行的各列内容并打印second_row next(reader)third_row next(reader)for column_title, value in second_row.items():print(f{column_title}: {value})
运行效果如下
02-涉及到的相关对象
02-01-DictReader对象通过方法DictReader读取csv文件得到的DictReader对象
通过语句reader csv.DictReader(file)读取csv文件后reader 是一个DictReader对象其属性如下 从中我们可以看出在属性fieldnames中存储了这个csv文件的表头。
另外有个名叫line_num的存储了当前位于第几行【行数是从1开始算不是从0开始算】比如截图中的line_num的值为3那么代表当前位于第3行。注意这个值是只读的是不能修改的它是基于当前的内存位置得出的。如果要改变它的值我们只能通过类似于下面的语句去迭代增长内存位置从而改变它的值
current_row next(reader)或者
for current_row in reader这个值其实挺有用的比如我可以设置我想读哪一行的内容然后通过如上面的for循环去迭代DictReader对象当这个值等于我设置的行数时就可以去读取我想要的内容了。
02-02-每一行的内容实际上是一个字典对象
对于下面两句代码返回的对象 second_row next(reader)third_row next(reader)看下面的这两张截图就知道了 所以就不多说什么了。
03-读取表头并打印出指定行的内容的代码
假如要读第1000行的内容咱们不可能去写999条语句second_row next(reader)呀根据02-01中对DictReader对象的属性line_num的分析我们可以像下面这样写代码
import csvfile_path rE:\Temp\test01.csvwith open(file_path, r, newline, encodinggbk) as file:# 创建CSV字典文件读取器reader csv.DictReader(file)# 读取到第1000行target_row_number 1000for row in reader:if reader.line_num target_row_number:# 在这里你可以处理目标行的内容for column_title, value in row.items():print(f{column_title}: {value})break # 退出循环因为我们已经读取到了目标行
我们把上面的 target_row_number的值换成2运行效果如下 我们把上面的 target_row_number的值换成3运行效果如下 从上面的结果来看实现了我们的需求。