添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
本文详细介绍了如何使用Python的内置库csv进行CSV文件的读取和写入操作。在读取时,可以以字符串、列表和字典形式进行,并展示了不同方式的示例。同时,文章提醒在写入CSV文件时要注意newline参数的设置,避免产生额外的空行。此外,还提供了追加写入的示例。 摘要生成于 ,由 DeepSeek-R1 满血版支持,

转自:https://www.cnblogs.com/ttj57/p/13588524.html

csv文件与txt文件类似,区别点就是在csv文件中,字段间使用“,”或“|”隔开,达到类似与表格的效果。csv文件可以使用记事本打开(打开可见分隔符“,”),也可使用excel打开(打开以表格形式显示,看不见分隔符)。注意:尽量不要使用wps打开,可能会打乱格式。

#在操作csv文件时,需要导入csv库,csv是python内置库,无需下载
import csv
 #读取csv文件内容
#在操作csv文件时,文件要保持打开状态,mode='r'表示操作模式为只读
cdata=open(r'./test.csv',mode='r',encoding='utf8')
#以字符串形式进行读取,每次读取一行,返回结果包含分隔符
# for i in cdata:
#     print(i)#结果为字符串,如:"1,3,5,7"
#以列表形式进行读取,可使用循环遍历每一行读取
# clist=csv.reader(cdata)#注意:文件打开后每次只能进行一次操作
# for i in clist:
#     print(i)#结果为列表,列表内元素为字符串类型,如:['1', '3', '5', '7']
#可将数据直接添加到列表中,方便后期使用
# result=[]#定义一个列表存储文件数据
# result.extend(clist)#将数据添加到列表中
# print(result)#[['1', '3', '5', '7'], ['2', '4', '6', '8']]
#以字典形式进行读取,可使用循环遍历每一行读取
cdict=csv.DictReader(cdata)
for i in cdict:
    print('%s,%s,%s,%s'%(i['l1'],i['l2'],i['l3'],i['l4']))
# cdata.close()#关闭文件
#写入操作
#对csv文件进行写入操作,mode='w'表示操作模式为只写,如文件不存在则自动创建文件覆盖写入
with open(r'./test2.csv',mode='w',newline='',encoding='utf8') as cf:
    wf=csv.writer(cf)
    wf.writerow(['name', 'age', 'sex'])
    data = [['小丽', '10', '女'], ['小李', '12', '男'], ['小力', '9', '男']]
    for i in data:
        wf.writerow(i)
#末尾追加写入,文件必须已存在
with open(r'./test2.csv',mode='a',newline='',encoding='utf8') as cfa:
    wf = csv.writer(cfa)
    data2 = [['小美', '10', '女'], ['小力', '12', '男'],]
    for i in data2:
        wf.writerow(i)
with open(r'./test2.csv',mode='w',newline='',encoding='utf8') as cf:

如果不写 newline='',csv文件生成的时候,里面会每隔一行出现一个空白行

with open(os.path.join(os.path.dirname(__file__), "file1")) as csvFile: rows = csv.reader(csvFile) with open(os.path.join(os.path.dirname(__file__), "file2"), 'w') as f: writer = csv.w...
利用csv包中的writer函数,如果文件不存在,会自动创建,需要注意的是,文件后缀一定要是.csv,这样才会创建csv文件 这里创建好文件,将csv文件的头信息进了文件。 import csv def create_csv(): path = "aa.csv" with open(path,'w... 1、PermissionError: [Errno 13] Permission denied: '***.csv' 出现这样的问题是由于csv文件没有关闭,在excel中创建的***.csv没有关闭,关闭excel就可以解决。 2、运行之后点开***.csv,发现添加的数据出现双倍行距 解决这样的问题,只需要在打开文件时添加“newline =''”, with open('***.csv','a+',newli... import csv #导入CSV文件CSV文件和PY文件必须在同一个包下) def read_csv(path): #定义一个叫read_csv的函数,这个函数的内容是: file=open(path,'r',encoding='utf-8') #打开文件(路径,模式=“r”(即read),编码=“utf-8 本文中采用os库对文件进行批量导入, 采用csv库进行操作,主要是csv.read()和csv.write() 本文解决了在新的csv文件中有空格的问题 本文处理的是文本文档,采用‘wt’,‘rt’,不能使用‘wb’和‘rb’的二进制读取方式 import csv import os 创建文件夹 source_path = './excel_data/' save_path = './csv_data/' if not os.path.exists(save_path):
刚刚接触python,学长给的任务是修改一个有3000多行数据的csv文件,具体需求是将第三列里的api_description和api_name的值改为第一列的内容,api_url改为第二列的内容。 看这个第三列,很像一个json key-value格式的数据,因此考虑将第三列转为json文件,为了方便将整个文件都转为json文件。大概的思路是这样: 1、将csv文件转为json 2、在js...
Python中实现对MySQL数据库的表设置联合唯一约束,以及在代码中添加 异常捕获 的功能,在违反唯一性约束时,做想要额外执行的操作 将 列表list 转换为 DataFrame格式 将 列表list 转换为 DataFrame格式 # 假设有一个列表data data = [1.2, '54512', 116.47, 39.8069, 31.3, 'LC'] # 将其转换为 df_...
org.apache.catalina.connector.ClientAbortException: java.io.IOException: 您的主机中的软件中止了一个已建立的连接。 28366