python文件读取

本文介绍了Python中使用内置函数读取文件的多种方式,包括open()函数的模式设置,如read(), readline(), readlines()等方法。同时详细讲解了Pandas如何读取文件,如read_table(), read_csv(), read_fwf()和read_clipboard(),提供了一种简单直观的数据处理方式。" 133593203,19694767,Linux环境下Qtopia Core的交叉编译与安装,"['Linux运维', '嵌入式开发', '编程']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 使用内置文件读取函数

1.open(file,r(rb、w、wb))

——相关参数

File指文件名,r指读,rb指以二进制形式读取,w指写(直接覆盖原有内容),wb以二进制形式写入

2.read()

一次读取全部内容

——使用with语句不需要显示关闭自动调用close,一次读取整个文件并将结果整体作为一个str返回

with open(r'ml-1m\ratings.dat') as f:
    data=f.read()
    print(type(data))
print(data)

 ——不使用with语句,需显示调用close关闭文件流

f=open(r'ml-1m\ratings.dat')
data=f.read()
print(data)
f.close()

2.readline()

一次只读取一行,返回str

with open(r'ml-1m\ratings.dat') as f:
    data=f.readline()
    print(type(data))
print(data)

<class 'str'>

1::1193::5::978300760

3.readlines()

每次读取一行将结果插入列表最终返回一个列表从下表结果可以看出一次读取一行每行作为一个字符串整体插入列表故长度有1000209

user=[]
with open(r'ml-1m\ratings.dat') as f:
    data=f.readlines()
    print(type(data),len(data))
print(type(data[0]))
print(data[:5])
for line in data:
    line=line.rstrip()
    user.append(line.split('::'))
print(user[:5])
print(type(user[0]))

<class 'list'> 1000209

<class 'str'>

['1::1193::5::978300760\n', '1::661::3::978302109\n', '1::914::3::978301968\n', '1::3408::4::978300275\n', '1::2355::5::978824291\n']

[['1', '1193', '5', '978300760'], ['1', '661', '3', '978302109'], ['1', '914', '3', '978301968'], ['1', '3408', '4', '978300275'], ['1', '2355', '5', '978824291']]

<class 'list'>

4.按行读取

user=[]
with open(r'ml-1m\ratings.dat') as f:
    for line in f:
        #去除每行最后的'\n'分割符
        
line=line.rstrip()
        #y'::'分割,并将每行数据插入列表user
        
user.append(line.split('::'))
print(user[:5])
print('长度',len(user))

 二、 使用pandas读取文件

Pandas.read_table(),从文件、URL、文件型对象中加载待分隔符的数据,默认分隔符为制表符‘\t’。返回数据类型为  DataFrame

参数sep指定分隔符形式,names可接受列表,作为DataFrame的列名

很简单直观,有木有!!!!

import pandas as pd

ratings=pd.read_table(r'ml-1m\ratings.dat',sep='::',header=None,names=['userid','movieid','ratings','timestamp'])

print('类型',type(ratings))

print(ratings[:5])

类型 <class 'pandas.core.frame.DataFrame'>

   userid  movieid  ratings  timestamp

0       1     1193        5  978300760

1       1      661        3  978302109

2       1      914        3  978301968

3       1     3408        4  978300275

4       1     2355        5  978824291

除了pandas.read_table()以外,还有

pandas.read_csv()从文件、URL、文件型对象中加载待分隔符的数据,默认分隔符为逗号。

pandas.read_fwf()读取定宽列格式数据(没有分隔符)

pandas.read_clipboard()读取剪贴板数据

三、 其他

数组读写入文件、json格式、piackle等再整理~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值