txt、Csv、Excel、JSON、SQL文件讀取(Python)

txt、Csv、Excel、JSON、SQL文件讀取(Python)

txt文件讀寫

創建一個txt文件

image-20211117191500810

f=open(r'text.txt','r',encoding='utf-8')
s=f.read()
f.close()
print(s)

image-20211117192720306

open( )是打開文件的方法

'text.txt’文件名 在同一個文件夾下所以可以省略路徑

如果不在同一個文件夾下 ‘xxx/xxx/text.txt’ 文件名前加路徑

encoding:設置字符編碼

read( )是讀取文件內容

close( )是關閉文件

with

open( )函數方法打開文件讀取文件內容時,如果不關閉文件,將無法對該文件進行修改。當打開文件并寫入文件內容后,不關閉文件會造成寫入的內容不能保存。

在Python語言中,提供了with與open( )函數方法搭配使用

通過with與open( )函數搭配使用無須再去書寫close( )函數方法

with open(r'text.txt','r',encoding='utf-8') as f:s=f.read()
print(s)

image-20211117193040278

寫入

with open(r'text.txt','w') as f:f.write('qwertyuiop')

image-20211117194905626

寫入多行
with open(r'text.txt','w') as f:text=['asdfghjk\n','xcvbnmrtyui\n','123456789\n']f.writelines(text)

image-20211117195100045

open(r’text.txt’,‘w’)函數中,'w’參數意為寫入,會將文件原有的內容進行覆蓋

文件打開模式

  • r 只讀 只讀默認模式
  • w 只寫 在原文件寫,覆蓋原文件
  • a 只寫 不覆蓋原文件,末尾追加
  • wb 寫入 以二進制形式寫入,保存圖片時使用
  • r+ 讀寫 在原文件寫,覆蓋原文件
  • w+ 讀寫 在原文件寫,覆蓋原文件
  • a+ 讀寫 不覆蓋原文件,末尾追加

CSV文件讀寫

read_csv( )

讀取當前目錄下的text.csv

import pandas as pd
a=pd.read_csv(r'text.csv')
print(a)

image-20211118154707796

設置字段

import pandas as pd
a=pd.read_csv(r'text.csv',names=['id','name'])
print(a)

image-20211118154925920

指定相應的索引列

import pandas as pd
a=pd.read_csv(r'text.csv',names=['id','name'],index_col='id')
print(a)

image-20211118155101296

import pandas as pd
a=pd.read_csv(r'text.csv',names=['id','name'],index_col=0)
print(a)

image-20211118155936730

獲取指定列

import pandas as pd
a=pd.read_csv(r'text.csv',names=['id','name'],usecols=[0])
print(a)
b=pd.read_csv(r'text.csv',names=['id','name'],usecols=['id'])
print(b)

image-20211118160111622

寫入

to_csv( )

import pandas as pd
data={'id':['1','2','3'],'name':['gh','jk','ty']}
a=pd.DataFrame(data)
a.to_csv(r'text.csv')

image-20211118160721939

設置寫入列

import pandas as pd
data={'id':['1','2','3'],'name':['gh','jk','ty']}
a=pd.DataFrame(data)
a.to_csv(r'text.csv',columns=['id'])

image-20211118160925017

設置寫入模式

mode w為寫(覆蓋) a為追加

import pandas as pd
data={'id':['1','2','3'],'name':['gh','jk','ty']}
a=pd.DataFrame(data)
a.to_csv(r'text.csv')
a.to_csv(r'text.csv',mode='a')

image-20211118161148822

是否寫入列名字段

header

import pandas as pd
data={'id':['1','2','3'],'name':['gh','jk','ty']}
a=pd.DataFrame(data)
a.to_csv(r'text.csv')
a.to_csv(r'text.csv',mode='a',header=False)

image-20211118161439353

第二次寫入不寫入列名

刪除索引

index=None

import pandas as pd
data={'id':['1','2','3'],'name':['gh','jk','ty']}
a=pd.DataFrame(data)
a.to_csv(r'text.csv',index=None)
a.to_csv(r'text.csv',mode='a',header=False,index=None)

image-20211118161615766

Excel文件讀寫

read_excel( )

參數:

sheet_name='name’為讀取的分表名,可以寫表名、位置下標。

index_col為指定相應的索引列,為字段名或者字段列表下標。

usecols為獲取指定列

names為設置列字段

header為用哪一行做字段名

nrows為指定獲取的行數

skiprows為跳過特定行,skipfooter跳過末尾n行

import pandas as pd
a=pd.read_excel(r'text.xlsx')
print(a)

image-20211118163152122

image-20211118163158707

選擇表

sheet_name

image-20211118163248615

新建一個表

import pandas as pd
a=pd.read_excel(r'text.xlsx',sheet_name=1)
print(a)

image-20211118163411089

設置索引列

index_col

import pandas as pd
a=pd.read_excel(r'text.xlsx',sheet_name=0,index_col=[0])
print(a)

image-20211118163509449

獲取指定列

usecols

import pandas as pd
a=pd.read_excel(r'text.xlsx',sheet_name=0,usecols=[0])
print(a)

image-20211118163733752

設置列字段

names

import pandas as pd
a=pd.read_excel(r'text.xlsx',sheet_name=0,names=['ID','NAME','CLASS'])
print(a)

image-20211118163832628

指定某行為字段名

header

import pandas as pd
a=pd.read_excel(r'text.xlsx',sheet_name=0,header=1)
print(a)

image-20211118164019711

設置獲取行數

nrows

import pandas as pd
a=pd.read_excel(r'text.xlsx',sheet_name=0,nrows=2)
print(a)

image-20211118164126982

跳過n行

skiprows 跳過前n行

import pandas as pd
a=pd.read_excel(r'text.xlsx',sheet_name=0,skiprows=1)
print(a)

image-20211118164512708

skipfooter跳過末尾n行

import pandas as pd
a=pd.read_excel(r'text.xlsx',sheet_name=0,skipfooter=3)
print(a)

image-20211118164541263

寫入

import pandas as pd
data={'id':[1,2,3,4],'name':['A','B','C','D']}
a=pd.DataFrame(data)
a.to_excel(r'text.xlsx')

image-20211118170357301

寫入多表

import pandas as pd
data={'id':[1,2,3,4],'name':['A','B','C','D']}
a=pd.DataFrame(data)
writer = pd.ExcelWriter(r'text.xlsx')
a.to_excel(writer,sheet_name='1')
a.to_excel(writer,sheet_name='2')
writer.save()
writer.close()

image-20211118192201277

image-20211118192210232

寫入新分表

import pandas as pd
import openpyxl
book = openpyxl.load_workbook(r'text.xlsx')
writer=pd.ExcelWriter(r'text.xlsx')
writer.book=book
writer.sheets=dict((ws.title,ws) for ws in book.worksheets)
data={'id':[5,2,8,4],'name':['H','B','C','D']}
a=pd.DataFrame(data)
a.to_excel(writer,sheet_name="3")
writer.save()
writer.close()

image-20211118192654125

JSON文件讀寫

read_json()

import pandas as pd
a=pd.read_json(r'text.json',encoding='utf8')
print(a)

image-20211118194544366

序列化

import pandas as pd
a=pd.read_json(r'text.json',encoding='utf8')
b=pd.json_normalize(a.data)
print(a)
print(b)

image-20211118194921915

寫入

to_json( )

force_ascii為數據編碼格式,默認為True,中文以Unicode形式寫入,如果為False,中文以ANSI形式寫入。

import pandas as pd
data={'id':[1,2,3],'name':['a','b','c']}
a=pd.DataFrame(data)
a.to_json('text.json',force_ascii=False)

image-20211118200027122

SQL文件讀取

import pymysql
con = pymysql.connect(host="127.0.0.1",port=3306,user='root',password='123456',db='test03',charset='utf8'
)
# 創建游標
cursor=con.cursor()
# 執行sql語句
cursor.execute("select * from test")
# 解釋全部返回結果
res=cursor.fetchall()
print(res)
con.close()

image-20211119091834244

Pandas讀取MySQL數據庫內容

import pymysql
import pandas as pd
con = pymysql.connect(host="127.0.0.1",port=3306,user='root',password='123456',db='test03',charset='utf8'
)
sql="select * from test"
pd=pd.read_sql_query(sql,con)
print(pd)

image-20211119092109695

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77187.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77187.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77187.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

硬件電路設計之51單片機(2)

聲明:繪制原理圖和PCB的軟件為嘉立創EDA。根據B站尚硅谷嵌入式之原理圖&PCB設計教程學習所作個人用筆記。 目錄 一、原理圖詳解 1、TypeC接口 (1)TypeC接口介紹 (2)TypeC原理圖 2、5V轉3.3V 3、單片機電源開…

kubernetes 入門篇之架構介紹

經過前段時間的學習和實踐,對k8s的架構有了一個大致的理解。 1. k8s 分層架構 架構層級核心組件控制平面層etcd、API Server、Scheduler、Controller Manager工作節點層Kubelet、Kube-proxy、CRI(容器運行時接口)、CNI(網絡插件&…

Flink CDC 出現錯誤碼 1236 和 SQL 狀態 HY000 的原因及解決方法

Flink CDC 出現錯誤碼 1236 和 SQL 狀態 HY000 的原因及解決方法 常見原因 server-id 沖突:當多個 Flink CDC 任務連接同一個 MySQL 實例,且使用了相同的 server-id 時,會導致該沖突。因為 MySQL 服務器通過 server-id 來區分不同的從服務器,如果多個 Flink CDC 任務使用相…

從PPT到PNG:Python實現的高效PPT轉圖工具

從PPT到PNG:Python實現的高效PPT轉圖工具 在日常工作中,PPT(PowerPoint)文件是我們常用的演示工具。然而,有時候我們需要將PPT的內容提取為圖片格式(如PNG)以便于展示或保存。手動將每一頁PPT保…

【開發語言】懸空指針問題

懸空指針(Dangling Pointer)是編程中常見的內存管理問題,尤其在C/C這類手動管理內存的語言中。以下是詳細解釋: 什么是懸空指針? 懸空指針是指向已經被釋放(或失效)內存的指針。這段內存可能已…

【持續更新中】常用docker服務部署指北

前言 docker是個好東西,小樹莓派上也能快速部署,方便管理環境。用這篇筆記來記錄下各種軟件的快速部署方式 準備環境 docker安裝 curl -fsSL https://get.docker.com -o get-docker.sh sh ./get-docker.shdocker鏡像源配置 一種方法是設置proxy&…

Godot學習-創建簡單動畫

文章目錄 1、準備工作Godot資源 2、創建項目3、創建結點4、創建動畫1、創建動畫2、添加軌道3、創建關鍵幀3.1 第一個關鍵幀3.2 第二個關鍵幀 5、加載后自動播放6、動畫循環7、軌道設置1、軌道更新模式2、軌跡插值3、其他屬性的關鍵幀4、編輯關鍵幀5、使用 RESET 軌道6、洋蔥皮 …

Python 爬蟲解決 GBK亂碼問題

文章目錄 前言爬取初嘗試與亂碼問題編碼知識科普UTF - 8GBKUnicode Python中的編碼轉換其他編碼補充知識GBKGB18030GB2312UTF(UCS Transfer Format)Unicode 總結 前言 在Python爬蟲的過程中,我嘗試爬取一本小說,遇到GBK亂碼問題&a…

B站搜索關鍵詞機制深度解析:算法邏輯與優化策略

在擁有超過5億用戶的B站生態系統中,每天都有海量的視頻內容被上傳和消費。對于創作者而言,如何讓自己的視頻在茫茫內容海洋中被目標受眾發現,是至關重要的課題。而關鍵詞,正是連接內容與用戶的關鍵橋梁。理解B站的搜索關鍵詞機制&…

寶塔面板中解鎖Laravel日志查看的奧秘

目錄 一、前言二、Laravel 日志基礎認知2.1 日志的作用2.2 Laravel 日志的默認配置 三、查找 Laravel 日志文件位置3.1 常規存儲路徑3.2 自定義路徑查找 四、查看 Laravel 日志內容4.1 寶塔面板文件管理器查看4.2 使用命令行查看 五、常見問題及解決方法5.1 權限不足無法查看5.…

Matlab Add Legend To Graph-圖例添加到圖

Add Legeng To Graph: Matlab的legend()函數-圖例添加到圖 將圖例添加到圖 ,圖例是標記繪制在圖上的數據序列的有用方法。 下列示例說明如何創建圖例并進行一些常見修改,例如更改位置、設置字體大小以及添加標題。您還可以創建具有多列的圖…

K8S+Prometheus+Consul+alertWebhook實現全鏈路服務自動發現與監控、告警配置實戰

系列文章目錄 k8s服務注冊到consul prometheus監控標簽 文章目錄 系列文章目錄前言一、環境二、Prometheus部署1.下載2.部署3.驗證 三、kube-prometheus添加自定義監控項1.準備yaml文件2.創建新的secret并應用到prometheus3.將yaml文件應用到集群4.重啟prometheus-k8s pod5.訪…

基于YOLO11的車牌識別分析系統

【包含內容】 【一】項目提供完整源代碼及詳細注釋 【二】系統設計思路與實現說明 【三】系統數據統計與可視化分析支持 【技術棧】 ①:系統環境:Windows/macOS/Linux ②:開發環境:Python 3.8 ③:技術棧&#x…

每天記錄一道Java面試題---day39

GC如何判斷對象可以被回收了 回答重點 引用計數法: - 每個對象由一個引用計數屬性,新增一個引用時計數器加1,引用釋放時計數減1,計數為0時可以回收。可達性分析法: - 從GC Roots開始向下搜索,搜索所走過的…

機器學習(5)——支持向量機

1. 支持向量機(SVM)是什么? 支持向量機(SVM,Support Vector Machine)是一種監督學習算法,廣泛應用于分類和回歸問題,尤其適用于高維數據的分類。其核心思想是尋找最優分類超平面&am…

從零到一:網站設計新手如何快速上手?

從零到一:網站設計新手如何快速上手? 在當今數字化時代,網站已成為企業、個人展示信息、提供服務的重要窗口。對于想要涉足網站設計領域的新手而言,如何快速上手并掌握必要的技能成為首要任務。本文將從基礎知識、軟件工具、設計…

藍橋杯2024國B數星星

小明正在一棵樹上數星星,這棵樹有 n 個結點 1,2,?,n。他定義樹上的一個子圖 G 是一顆星星,當且僅當 G 同時滿足: G 是一棵樹。G 中存在某個結點,其度數為 ∣VG?∣?1。其中 ∣VG?∣ 表示這個子圖含有的結點數。 兩顆星星不相…

Django從零搭建賣家中心登陸與注冊實戰

在電商系統開發中,賣家中心是一個重要的組成部分,而用戶注冊與登陸則是賣家中心的第一步。本文將詳細介紹如何使用Django框架從零開始搭建一個功能完善的賣家注冊頁面,包括前端界面設計和后端邏輯實現。 一、項目概述 我們將創建一個名為sel…

Opencv使用cuda實現圖像處理

main.py import os import cv2 print(fOpenCV: {cv2.__version__} for python installed and working) image cv2.imread(bus.jpg) if image is None:print("無法加載圖像1") print(cv2.cuda.getCudaEnabledDeviceCount()) cv2.cuda.setDevice(0) cv2.cuda.printCu…

如何編制實施項目管理章程

本文檔概述了一個項目管理系統的實施計劃,旨在通過統一的業務規范和技術架構,加強集團公司的業務管控,并規范業務管理。系統建設將遵循集團統一模板,確保各單位項目系統建設的標準化和一致性。 實施范圍涵蓋投資管理、立項管理、設計管理、進度管理等多個方面,支持項目全生…