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
一行一行写入/ 多行写入
已经认知自己的错误,就该去弥补,为了让之后的日子做到无怨无悔,我必须每天都奋斗!!!