python------文件

本文详细介绍了Python中文件类型(文本与二进制)、编码方式以及如何使用open函数操作文件(读写和关闭)。以实例展示了读取文本文件、二进制文件(如图片)和使用xlrd读取Excel文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、文件的类型(编码的不同分类)

二、文件的操作

三、Excel文件的读写


(由于输出太长只截取一部分)

 

一、文件的类型(编码的不同分类)

1、文本文件:基于字符编码,存储的是普通字符串,不包括字体,字号,样式,颜色等信息.
可通过文本编辑器显示和编辑。如:.txt/.py/.html/.csv/.xls/.xlsx
2、二进制文件:基于值编码的,以字节形式存储,其编码长度根据值的大小长度 可变。
如.jpg/.avi等图片、音频或视频文件

二、文件的操作

1、使用open()函数打开(或建立)文件,返回一个file对象;
2、使用file对象的读/写方法进行读/写的操作;
3、使用file对象的close()方法关闭文件
4、示例如下:

示例一:

(1)源码:

#读取文本文件的操作:示例1:读取文件夹Stu_pack里的文件(纯英文和中文)
file = open('../Stu_pack/Dream It Possible.txt',encoding='utf-8')   #创建打开文件对象file
#file.read()                             #一次性读取文件
f_r = file.readlines()                   #以 行 为单元读取文件   定义列表f_r存放按行读取的文件

for line in f_r:                         #遍历文件列表,并打印出来
    print(line)
    
file.close()                             #关闭文件 ,不然内容丢失   

输出:

Dream It Possible(梦想成为可能)- Delacey 歌词(中英对照)



作词:Andy Love    



作曲:Andy Love



I will run I will climb I will soar.



 我奔跑,我攀爬,我要飞翔。



I'm undefeated. 



我所向披靡。



Jumping out of my skin pull the chord. 



跳出我的桎梏,拨弄琴弦。



Yeah I believe it. 



是啊,我坚信。



The past is everything we were don't make us who we are. 



历史决定曾经,但并不能决定现在的你和我。



so I'll dream until I make it real and all I see is stars. 



所以我会不懈梦想直到梦变成真,直到窥见漫天星光。



It's not until you fall that you fly. 



不再畏惧跌倒,直到你展翅高飞的那一刻。



When your dreams come alive you're unstoppable. 



当梦想成真,你便无可阻挡。



take a shot chase the sun, find the beautiful. 



挥着双翅,追随太阳,寻找美好。



We will glow in the dark turning dust to gold. 



我们会在黑暗中耀发光芒,点石成金。



And we'll dream it possible. 



我们期盼梦想成真。



Possible. 



梦想成真。



And we’ll dream it possible.



我们期盼梦想成真。



I will chase I will reach I will fly. 



我追随,我向前,我会展翅翱翔。



Until I'm breaking until I'm breaking. 



直到跌倒,直到毁灭的那一刻。



Out of my cage like a bird in the night. 



走出自我的牢笼,像黑夜中自由高飞的鸟儿般。



I know I'm changing I know I'm changing. 



我知道我在蜕变,在蜕变。



In into something big better than before. 



变成未曾有过的强大。



And if it takes takes a thousand lives. 



崇高理想的实现。



Then it's worth fighting for. 



总是需要付出无数鲜血。



It's not until you fall that you fly. 



不再畏惧跌倒,直到你展翅高飞的那一刻。
.......

 示例二:

(1)源码:

#读取二进制文件
from PIL import Image #导入pillow第三方库中的image图片库模块
im=Image.open(r'C:\Users\Administrator\Desktop\202209408雷孟晓\Stu_pack\Five_Star.png')#创建打开文件对象

im.save('Five_Star.png')   #相对路径保存文件
im.save(r'C:\Users\Administrator\Desktop\202209408雷孟晓\demo\Five_Star.png')
im.show()  #在当前窗口显示文件
pip list  #查看本环境安装的第三方库

输出:

Package                       Version
----------------------------- --------------------
alabaster                     0.7.12
anaconda-client               1.11.0
anaconda-navigator            2.3.1
anaconda-project              0.11.1
anyio                         3.5.0
appdirs                       1.4.4
argon2-cffi                   21.3.0
argon2-cffi-bindings          21.2.0
arrow                         1.2.2
astroid                       2.11.7
astropy                       5.1
atomicwrites                  1.4.0
attrs                         21.4.0
Automat                       20.2.0
autopep8                      1.6.0

(2) 源码:

pip show pillow #显示需要查找的第三方库

 输出:

Name: Pillow
Version: 9.2.0
Summary: Python Imaging Library (Fork)
Home-page: https://python-pillow.org
Author: Alex Clark (PIL Fork Author)
Author-email: aclark@python-pillow.org
License: HPND
Location: c:\users\administrator\anaconda3\lib\site-packages
Requires: 
Required-by: bokeh, datashader, imageio, matplotlib, scikit-image
Note: you may need to restart the kernel to use updated packages.

(3) 源码:

pip show xlrd #显示读取Excel文件

输出 :

Name: xlrd
Version: 2.0.1
Summary: Library for developers to extract data from Microsoft Excel (tm) .xls spreadsheet files
Home-page: http://www.python-excel.org/
Author: Chris Withers
Author-email: chris@withers.org
License: BSD
Location: c:\users\administrator\anaconda3\lib\site-packages
Requires: 
Required-by: 
Note: you may need to restart the kernel to use updated packages.

 示例三:

(1)源码: 

示例3:写文本文件:向当前文件夹demo里写入文件test.txt,其内容为10行自己的学号姓名,每行前面以序号
file = open('test.txt','w+',encoding='utf-8')
for i in range(1,11):
    file.write(str(i)+'\t'+'小雷202209'+'\n')
    

file.close()

#读取text.txt
file = open('test.txt',encoding='utf-8')
f_r=file.read()
print(f_r)
file.close()

 输出:

1	小雷202209
2	小雷202209
3	小雷202209

(2)源码: 

with open('../Stu_pack/万疆.txt',encoding='utf-8')as file:
    print(file.read())

输出: 

红日升在东方 其大道满霞光
我何其幸 生于你怀
承一脉血流淌
难同当 福共享 挺立起了脊梁
吾国万疆 以仁爱
千年不灭的信仰
写苍天只写一角日与月悠长
画大地只画一隅山与河无恙
观万古上下五千年天地共仰
唯炎黄 心坦荡 一身到四方
抚流光一砖一瓦岁月浸红墙
叹枯荣一花一木悲喜经沧桑
横八荒九州一色心中的故乡
唯华夏 崭锋芒 道路在盛放
红日升在东方 其大道满霞光
我何其幸 生于你怀

三、Excel文件的读写

1、第三方模块的安装(读取:xlrd,写入:xlwt)
2、示例1:读取Excel文件内容,将结果保存在列表中
    操作步骤:
        (1)导入模块xlrd
        (2)打开工作簿book
        (3)指定工作蒲中的表单sheet
        (4)根据行列序号读取内容

 源码:

#读取Stu_pack里面的shool。xls文件并以列表保存
#(1)导入模块xlrd
import xlrd
#(2)打开工作簿book
wb=xlrd.open_workbook('../Stu_pack/school.xls','rt')#创建打开文件的对象
#(3)指定工作蒲中的表单sheet
sheet=wb.sheet_by_index(0)#创建索引表单的对象sheet

#(4)根据行列序号读取内容
schools=[]   #定义一个二维列表shool
for row in range(sheet.nrows):
    school=[]            #定义一个一维列表school,存放一行的单元格内容、
    for col in range(sheet.ncols):
        content= sheet.cell_value(row,col)   #读取单元格的内容并保存在变量content内
        school.append(content)              #将内容追加到一堆列表school每一行里面
    schools.append(school)      #将每一行
for school in schools:
   print(school)

 输出:

['招生单位代码', '招生单位名称', '所在省份', '是否985', '是否211', '是否自主划线', '学校类型']
['10001', '北京大学', '北京市', '是', '是', '是', '综合类']
['10002', '中国人民大学', '北京市', '是', '是', '是', '综合类']
['10003', '清华大学', '北京市', '是', '是', '是', '理工类']
['10004', '北京交通大学', '北京市', '否', '是', '否', '理工类']
['10005', '北京工业大学', '北京市', '否', '是', '否', '理工类']
['10006', '北京航空航天大学', '北京市', '是', '是', '是', '理工类']

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不洒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值