Python保存數(shù)據(jù)到文件的實現(xiàn)方式
IO(Input/Output)是指計算機與外部環(huán)境之間的數(shù)據(jù)交換。Python中的IO操作分為文件IO和網絡IO兩種。
文件IO:Python提供了內置的文件對象來實現(xiàn)文件IO操作。文件對象是通過內置的open()函數(shù)創(chuàng)建的,它可以用于讀取、寫入、修改文件。
網絡IO:Python中通過socket模塊支持網絡IO操作。使用socket模塊,可以創(chuàng)建TCP/UDP套接字來實現(xiàn)網絡通信。
Python中還提供了許多高級IO庫,如:io、pickle、json等,它們能夠方便地對數(shù)據(jù)進行序列化和反序列化。
此外,Python還支持標準輸入輸出(stdin/stdout),可以與操作系統(tǒng)進行交互,實現(xiàn)命令行輸入輸出操作。
方法一:open函數(shù)
open函數(shù)是Python內置函數(shù)之一,用于打開文件并返回文件對象,可以用于讀取或寫入文件。
它的常用語法是:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
參數(shù)解析:
- file表示要打開的文件名(包括路徑),
- mode表示打開文件的模式,默認為只讀模式(‘r’)。對于寫入模式,可以使用’w’、‘x’、'a’等方式,分別表示覆蓋寫入、創(chuàng)建新文件并寫入、在文件末尾添加內容等。
- buffering表示緩沖策略,默認為使用系統(tǒng)默認緩沖機制,
- encoding表示文件編碼方式,
- errors表示編碼錯誤時的處理方式。
- newline表示換行符的轉換策略,
- closefd表示是否在文件關閉時同時關閉文件描述符,
- opener表示自定義開啟文件的方式。
#使用with open()新建對象f
with open('file.txt','w',encoding='utf-8') as f:
for i in comments:
#寫入數(shù)據(jù),文件保存在上面指定的目錄,加\n為了換行更方便閱讀
f.write(i+'\n')
方法二:numpy
NumPy是Python科學計算中最重要的模塊之一。
它提供了一個非常靈活的數(shù)組對象,可以方便地處理數(shù)值數(shù)據(jù)。
NumPy還提供了高效的矩陣運算、快速的傅里葉變換等等。
# 導入NumPy模塊
import numpy as np
# 創(chuàng)建NumPy數(shù)組對象并填充數(shù)據(jù)
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 調用NumPy提供的savetxt()函數(shù)將數(shù)組數(shù)據(jù)寫入文件中
np.savetxt('output.txt', arr)
# savetxt()函數(shù)有很多可選參數(shù)來控制格式、精度等選項。例如,可以使用delimiter參數(shù)設置分隔符,使用fmt參數(shù)設置輸出格式
np.savetxt('output.txt', arr, delimiter=',', fmt='%d')
方法三:csv
Python的csv模塊是一個用于讀寫CSV(Comma-Separated Values)格式文件的標準庫。
CSV格式常用于大量數(shù)據(jù)的存儲和交換,例如計算機數(shù)據(jù)、表格數(shù)據(jù)、統(tǒng)計數(shù)據(jù)等等。
import csv
# 打開文件
with open('data.csv', 'w', newline='') as file:
# 創(chuàng)建writer對象
writer = csv.writer(file)
# 寫入一行數(shù)據(jù)
writer.writerow(['姓名', '年齡', '性別'])
# 寫入多行數(shù)據(jù)
rows = [
['張三', 20, '男'],
['李四', 22, '女'],
['王五', 18, '男'],
]
writer.writerows(rows)
方法四:DataFrame
pandas是一個用于數(shù)據(jù)分析的Python庫,其中最主要的數(shù)據(jù)結構是DataFrame。
DataFrame類中提供了多個方法用于寫入數(shù)據(jù)到文件中, to_csv()將DataFrame寫入CSV文件、to_excel()DataFrame寫入Excel文件、to_json()方法將DataFrame轉換為JSON格式數(shù)據(jù),這些方法均提供多個參數(shù)可供使用,如控制輸出格式、數(shù)據(jù)類型、缺失值處理等,詳見pandas官方文檔。
to_csv()方法:將DataFrame寫入CSV文件
import pandas as pd
# 創(chuàng)建一個DataFrame
data = {'name':['Tom', 'Jack', 'Steve', 'Ricky'], 'age':[28, 34, 29, 42]}
df = pd.DataFrame(data)
# 將DataFrame寫入CSV文件
df.to_csv('output.csv', index=False)
to_excel()方法:將DataFrame寫入Excel文件
import pandas as pd
# 創(chuàng)建一個DataFrame
data = {'name':['Tom', 'Jack', 'Steve', 'Ricky'], 'age':[28, 34, 29, 42]}
df = pd.DataFrame(data)
# 將DataFrame寫入Excel文件
df.to_excel('output.xlsx', index=False)
方法五:codecs
Python中的codecs模塊提供了一些編碼和解碼功能,可以幫助我們在讀寫文件時處理不同字符集的問題。
codecs模塊還提供了許多其他的函數(shù),如open()、encode()、decode()、lookup()等等,可用于處理各種常見的編碼方式,如UTF-8、ASCII等等。
import codecs #或者io,使用哪種包無所謂
# 代碼使用`codecs.open()`函數(shù)打開文件,第一個參數(shù)是文件路徑,第二個參數(shù)指定文件打開模式,`w`表示寫入,`r`表示讀取。第三個參數(shù)是指定文件編碼,這里是UTF-8編碼。
with codecs.open('your_file.txt', 'r', 'utf-8') as f:
f.write('This method is prior')
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python3標準庫之threading進程中管理并發(fā)操作方法
這篇文章主要介紹了Python3標準庫之threading進程中管理并發(fā)操作方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
基于Python的socket庫實現(xiàn)通信功能的示例代碼
本文主要給大家介紹了如何使用python的socket庫實現(xiàn)通信功能,這里簡單的給每個客戶端增加一個不重復的uid,客戶端之間可以根據(jù)這個uid選擇進行廣播通信,感興趣的小伙伴快來看看吧2023-08-08
Python PyQt5干貨滿滿小項目輕松實現(xiàn)高效摳圖去背景
PyQt5以一套Python模塊的形式來實現(xiàn)功能。它包含了超過620個類,600個方法和函數(shù)。本篇文章手把手帶你用PyQt5輕松實現(xiàn)圖片扣除背景,大家可以在過程中查缺補漏,提升水平2021-11-11
python使用requests?POST提交一個鍵多個值方式
這篇文章主要介紹了python使用requests?POST提交一個鍵多個值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02

