当前位置: 首页 > news >正文

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

相关文章:

  • Vuex Actions 多参数传递的解决方案及介绍
  • vivado + modelsim 仿真:Post-Synthesis Timing Simulation
  • scapy使用
  • 【产品体验】豆包大模型实时语音本地化部署及功能体验
  • 2025年第十六届蓝桥杯省赛C++ 研究生组真题
  • 第四节:React Hooks进阶篇-useEffect依赖项为空数组[]与不写的区别
  • 如何修改服务器TTL值
  • [特殊字符] 第十三讲 | 地统计模拟与空间不确定性评估
  • Devil May Cry 4 SE (鬼泣4)运行报错 【由于找不到INPUT1_3.dll,无法继续执行代码。重新安装程序肯会解决此问题。】
  • 『Kubernetes(K8S) 入门进阶实战』实战入门 - Pod 详解
  • java之多线程
  • [Dify] 使用 Docker 本地部署 Dify 并集成 Ollama 模型的详细指南
  • Android监测顶层包名+类名
  • 动态规划(6)——01背包问题
  • 2025蓝桥杯JavaB组
  • jupyter notebook 无法启动- markupsafe导致
  • Day3—循环起来吧
  • 深入理解 PyTorch 的 nn.Embedding:词向量映射及变量 weight 的更新机制
  • 算法专题:双指针
  • 470用 Rand7() 实现 Rand10()
  • 企业网站建设哪家好/2021十大网络舆情案例
  • 丽江网站开发/友情链接交换网址大全
  • 做公司产品展示网站/超级外链发布工具
  • 地方门户网站开发方案/企业网络营销策划方案
  • 郑州网站建设优化公司/深圳网络营销软件
  • 武汉做网站的企业/帮平台做推广怎么赚钱