python各種檔案讀取

2021-09-19 13:59:44 字數 2610 閱讀 6804

目錄

1、json檔案

2、csv

3、用with來讀取檔案,可避免忘掉f.close()

4、用pandas讀取excel/csv檔案

1)、json檔案樣式:

資料儲存在鍵值中;

鍵值對間由逗號分隔;

花括號用於儲存鍵值對資料組成的物件;

方括號用於儲存鍵值對資料組成的陣列(多個物件組成);【{},{}】

2)、json檔案操作:

dumps() 將python格式轉成json; loads() 將json轉成python

dump() 輸出到檔案; load() 讀取json檔案

3)、舉例

import json

讀取資料:

f = open(filepath, mode='r', encoding='utf-8') #r唯讀,不能寫,預設為此型別,

city_list = json.load(f) #從json讀到python

寫入資料:

f = open('top5_aqi.json', mode='w', encoding='utf-8') # w為清除檔案,寫入, a為不清除檔案,在後面寫入

json.dump(top5, f, ensure_ascii=false) #python轉成json

f.close()

有兩種方式,一種為轉化為pandas.dataframe的資料型別,然後使用df.to_csv儲存,一種是使用csv庫中的writer()函式。

使用writer(import csv)

f = open('./shan.csv', mode='w', encoding='utf-8')

writer = csv.writer(f)

for i in range(len(trainmarkedwords)):

writer.writerow(trainmarkedwords[i])

f.close()

1)、規則

用逗號隔開

2)、函式

csv.writerow(list) 將列表元素寫入檔案的一行
3)、例子:

f = open('api.csv', mode='w', encoding='utf-8', newline='')

write = csv.writer(f)

for line in lines:

write.writerow(line)

f.close()

data.to_csv()

trainmarkedwords = np.array(trainmarkedwords) #先將list轉為array

data = pd.dataframe(columns=none, data=trainmarkedwords)

data.to_csv('./shan1.csv')

print ("資料轉成矩陣!")

with open('china_api.csv', 'w', endcoding='utf-8', newline='' ) as f:

writer = csv.writer(f)

writer.writerow(header)

for i, city in enumerate(city_list):

if (i + 1) % 10 == 0:

print("%%%%%%%正在處理第{}個城市:".format(i + 1))

此函式與pandas.read_csv()的區別在於pandas.read_excel()可讀取文件裡既含字元型別又含數字型別。

1、常用引數:sheet_name;header;names

python讀取各種檔案資料解析

1.讀取文字檔案資料 txt結尾的檔案 或日誌檔案 log結尾的檔案 以下是檔案中的內容,檔名為data.txt 與data.log內容相同 且處理方式相同,呼叫時改個名稱就可以了 以下是python實現 coding gb2312 import json defread txt high file...

python高階讀取檔案 Python讀取檔案內容

開啟檔案之後,就可以讀取檔案的內容,檔案物件提供多種讀取檔案內容的方法。開啟test.txt檔案 f open test.txt r 開啟test.txt檔案 f.close 關閉檔案 test.txt檔案有以下內容 hello world.hello python.hello imooc.讀取若干...

Python檔案讀取

python提供了多種方法實現檔案讀取操作 1 read 2 readline 3 readlines 4 xreadlines 很多人也在糾結到底應該選擇哪種方式,甚至疑問在處理大檔案時應該選擇哪種方式,因為擔心檔案過大導致記憶體佔用率過高甚至無法完全載入。其實,這個問題是多餘的,在引入了迭代器和...