csv模块

import csv

with open(r'1.csv','r',newline='',encoding='utf-8') as incsv, open(r'2.csv','w',newline='',encoding='utf-8') as outcsv:
    freader = csv.reader(incsv,delimiter=',')
print(freader)
fwriter = csv.writer(outcsv,delimiter=',')#初始化对象
print(fwriter)
for rowlist in freader:
print(rowlist)
fwriter.writerow(rowlist)#对象调用writerow方法

 

 1.csv中随便敲点东西

1、python语言符号:定界符(delimiter)

Python 使用特定符号或符号组合作为表达式、列表、字典、各种语句的字符串中的定界符,以及其他用途。

1、Python 定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;

2、在 Python 定界符中的任何特殊字符都不需要转义;

3、Python 定界符中的 Python 变量会被正常的用其值来替换。

常见的定界符:

 

2、newline=''

问题:csv.writer().writerow()保存的csv文件,打开时每行后都多一行空行

解决方法:在open()内增加一个参数newline='' 即可

 

 

 对newline的解释:(不是很清楚)

参数newline是用来控制文本模式之下,一行的结束字符。可以是None,’’,\n,\r,\r\n等。

当在读取模式下,如果新行符为None,那么就作为通用换行符模式工作,意思就是说当遇到\n,\r或\r\n都可以作为换行标识,并且统一转换为\n作为文本输入的换行符。当设置为空’’时,也是通用换行符模式工作,但不作转换为\n,输入什么样的,就保持原样全输入。当设置为其它相应字符时,就会判断到相应的字符作为换行符,并保持原样输入到文本。

当在输出模式时,如果新行符为None,那么所有输出文本都是采用\n作为换行符。如果设置为’’或者\n时,不作任何的替换动作。如果是其它字符,会在字符后面添加\n作为换行符。

 3、writerow  /  writerows

一行一行写入/    多行写入

 

posted @ 2019-12-12 15:37  癫疯  阅读(582)  评论(0编辑  收藏  举报