python文件讀取

一、 使用內置文件讀取函數

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等再整理~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章