Python中数据的CSV文件存取

Python中数据的CSV文件存取

csv(逗号分隔值文件格式)用来存储批量数据

一.数据存储
np.savetxt(frame,  array,  fmt,  delimiter=None)

• frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件
• array : 存入文件的数组
• fmt : 写入文件的格式,例如:%d %.2f %.18e
• delimiter : 分割字符串,默认是任何空格

import numpy as np

data = np.random.randint(1,20,(7,8))
print(data)
np.savetxt('first_csv_save.csv',data,fmt='%d',delimiter=' ')

在这里插入图片描述
在这里插入图片描述

二.数据读取
np.loadtxt(frame,  dtype=np.float,  delimiter=None, unpack=False)

• frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件
• dtype : 数据类型,可选
• delimiter : 分割字符串,默认是任何空格
• unpack : 如果True,读入属性将分别写入不同变量

import numpy as np

load_data = np.loadtxt('first_csv_save.csv',dtype=np.int,delimiter=None,unpack=False)
print(load_data)

在这里插入图片描述

三.多维数据存储
a.tofile(frame,  sep='',  format='%s')

• frame : 文件、字符串
• sep : 数据分割字符串,如果是空串,写入文件为二进制
• format : 写入数据的格式

import numpy as np

data = np.random.randint(1,20,(2,3,4))
print(data)
data.tofile('3D_csv_save.csv',sep=" ",format="%d")

在这里插入图片描述
在这里插入图片描述

四.多维数据读取
np.fromfile(frame,  dtype=float,  count=‐1,  sep='')

• frame : 文件、字符串
• dtype : 读取的数据类型
• count : 读入元素个数,‐1表示读入整个文件
• sep : 数据分割字符串,如果是空串,写入文件为二进制

import numpy as np

load_data = np.fromfile('3D_csv_save.csv',dtype=int,count=-1,sep=" ")
print(load_data)

在这里插入图片描述

### CSV文件的读取和写入操作 #### 读取CSV文件Python中,可以通过内置的`csv`模块来读取CSV文件。首先需要导入`csv`模块,然后使用`open()`函数打开文件,并通过`csv.reader()`函数读取文件对象。以下是一个具体的代码示例: ```python import csv with open('1.csv', 'r', encoding='utf-8') as f: csv_read = csv.reader(f) for row in csv_read: print(row) ``` 上述代码中,`open()`函数的第三个参数`encoding='utf-8'`是为了确保文件中的中文字符能够正确读取。`csv.reader()`函数返回一个迭代器,每次迭代返回一行数据数据是以列表的形式呈现的[^2]。 #### 写入CSV文件 写入CSV文件同样可以使用`csv`模块。可以通过`csv.writer()`函数创建一个写入对象,然后使用该对象的`writerow()`或`writerows()`方法将数据写入文件。以下是一个具体的代码示例: ```python import csv # 单行写入 with open('output.csv', 'w', newline='', encoding='utf-8') as f: csv_writer = csv.writer(f) csv_writer.writerow(['Name', 'Age', 'City']) csv_writer.writerow(['Alice', '25', 'New York']) csv_writer.writerow(['Bob', '30', 'Los Angeles']) # 多行写入 data = [ ['Name', 'Age', 'City'], ['Alice', '25', 'New York'], ['Bob', '30', 'Los Angeles'] ] with open('output.csv', 'w', newline='', encoding='utf-8') as f: csv_writer = csv.writer(f) csv_writer.writerows(data) ``` 在写入文件时,`open()`函数的`newline=''`参数用于防止在Windows系统下写入文件时出现空行。`csv.writer()`函数创建的写入对象提供了`writerow()`和`writerows()`两种方法,分别用于单行和多行数据的写入[^3]。 #### 追加数据CSV文件 如果需要在现有的CSV文件末尾追加数据,而不是覆盖原有内容,可以使用追加模式(`'a'`)打开文件。以下是一个具体的代码示例: ```python import csv # 追加单行数据 with open('output.csv', 'a', newline='', encoding='utf-8') as f: csv_writer = csv.writer(f) csv_writer.writerow(['Charlie', '35', 'Chicago']) ``` 通过使用追加模式,可以在不破坏原有数据的情况下,向CSV文件中添加新的记录[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值