import csv读取文件用法
时间: 2023-08-21 14:05:05 浏览: 46
读取CSV文件可以使用Python内置的csv模块,具体用法如下:
1. 导入csv模块
```python
import csv
```
2. 打开CSV文件并读取数据
```python
with open('file.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
data = [row for row in reader]
```
其中,'file.csv'是要打开的CSV文件名,'r'表示以只读方式打开文件,'encoding'参数指定编码方式,如果不指定,默认为utf-8。'csv.reader()'方法将CSV数据转换为迭代器对象,使用列表推导式将迭代器对象转换成列表。
3. 处理读取的数据
读取的CSV数据会被转换为列表,可以按照普通Python列表的方式进行处理。
4. 示例代码
```python
import csv
# 打开CSV文件并读取数据
with open('file.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
data = [row for row in reader]
# 处理读取的数据
for row in data:
print(row)
# 关闭文件
f.close()
```
上述代码中,读取的CSV数据被转换为列表data,并使用for循环遍历输出了每行数据。最后通过f.close()关闭文件。
相关问题
使用import csv读取csv后写出文件时, 数据产生超长小数位数的问题
这个问题可能是因为在写入csv文件时,数据被默认写成了浮点数类型,而浮点数类型的精度是有限的,可能会导致小数位数超过预期。解决这个问题的方法是在写入csv文件时,将数据转换为字符串类型,可以使用Python内置的`str()`函数将数据转换为字符串类型,例如:
```python
import csv
data = [[1, 2.3456789], [3, 4.5678901]]
with open('data.csv', 'w', newline='') as f:
writer = csv.writer(f)
for row in data:
writer.writerow([str(cell) for cell in row])
```
在上面的代码中,将数据转换为字符串类型后再写入csv文件,这样就可以避免数据产生超长小数位数的问题。
使用numpy读取csv文件的所有方法
使用 NumPy 可以方便地读取 CSV 文件。以下是使用 NumPy 读取 CSV 文件的几种方法:
1. 使用 loadtxt() 函数
```python
import numpy as np
data = np.loadtxt('filename.csv', delimiter=',', skiprows=1)
```
这里,loadtxt() 函数会将 CSV 文件中的数据读取到一个 NumPy 数组中。delimiter 参数指定 CSV 文件中的分隔符,skiprows 参数指定需要跳过的行数。
2. 使用 genfromtxt() 函数
```python
import numpy as np
data = np.genfromtxt('filename.csv', delimiter=',', skip_header=1)
```
genfromtxt() 函数与 loadtxt() 函数类似,但是它可以处理缺失值和不规则的数据。
3. 使用 pandas 库
```python
import pandas as pd
data = pd.read_csv('filename.csv')
data = data.values
```
pandas 是一个功能强大的数据处理库,可以方便地读取和处理各种数据格式,包括 CSV 文件。这里,我们首先使用 pandas 的 read_csv() 函数读取 CSV 文件,然后使用 values 属性将数据转换为 NumPy 数组。