第八课 Python文件的操作(python文件操作总结)
off999 2024-11-13 11:49 32 浏览 0 评论
文件是可以长久保存并能够反复使用和修改的数据集合体,不论是文本、图片、音频、视频等信息均可以文件的形式存储在不同形式的存储设备中(比如硬盘、u盘、手机内存、云盘等),按文件中数据的组织形式一般分为文本文件和二进制文件。
文本文件存储的是常规字符串,每行以换行符“\n”结尾。文件扩展名多为以“txt”、“log”、“ini”,可以用“记事本”等文字处理软件打开并编辑。
二进制文件包括图片文件、音视频、exe等可执行文件、各种数据库文件、各类office文档文件。以字节串的形式把信息存储在设备中,用“记事本”等文本处理软件打不开,只会显示一堆乱码,必须使用专门的二进制处理软件打开。
接下来我们学习在python中,一些基本的文件操作命令。
8.1 打开和关闭文件
8.1.1 open 函数
一、Python内置的open()函数可以打开一个文件,并创建一个file(文件)对象,然后才能调用其它方法对它进行读、写、修改、删除等操作。
语法格式为:
fileobject=open(filename[,mode][,buffering][,encoding][,errors][,newline][,closed][,opener])
各个参数的细节如下:
filename:要打开或创建的文件名,如果它不在资源管理器当前打开的目录下,则需要指定完整的路径名。
mode:指定打开文件的模式:只读,只写、写入,追加等。默认文件访问模式为只读(r)。
其它组合模式的用法:
r+ 读写模式。文件指针置于文件开头。
rb 以二进制、只读模式打开一个文件。文件指针置于文件开头。这是默认模式。
rb+ 以二进制、读写模式打开一个文件。文件指针置于文件开头。
wb 以二进制、写模式打开一个文件。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+ 读写模式打开一个文件。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+ 以二进制、读写模式打开一个文件。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab 以二进制、追加模式打开一个文件。如果该文件已存在,文件指针置于文件的结尾。即新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 读写模式打开一个文件。如果该文件已存在,文件指针置于文件的结尾。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制、读写模式打开一个文件。如果该文件已存在,文件指针置于文件的结尾。如果该文件不存在,创建新文件用于读写。
buffering:指定读写文件时的缓存模式, 0表示不缓存(只在二进制模式中),1表示使用行缓存模式(只用于文本模式);大于1,表明缓冲区的大小,系统默认值是-1表示固定大小缓冲区。
encoding:指定对文本进行编码和解码的方式,只用于文本模式。
newline:表示文件中新行的形式,也只用于文本模式,有“None”、“ ”、“\n”、“\r”、“\r\n”,默认是“\n”
二、File对象的属性
一个文件被打开后,会得到一个file对象,我们可以得到有关该文件的各种属性信息。
file对象的属性列表如下:
file.closed 返回true如果文件已被关闭,否则返回false。
file.mode 返回被打开文件的访问模式。
file.name 返回文件的名称。
例:
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
# 以二进制写模式打开一个文件
fileopen=open("abc.txt","wb")
print("文件名:",fileopen.name)
print("是否已关闭 :",fileopen.closed)
print("打开模式 :",fileopen.mode)
输出结果为:
文件名: abc.txt
是否已关闭 : False
打开模式 : wb
8.1.2 close() 函数
当对文件内容操作完成后,一定要关闭该文件,这样才能保证所做工作确实保存在文件中了。这是一个好习惯。
语法:
filename.close();
例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 打开一个文件
fileopen = open("fileopen.txt", "wb")
print("文件名: ", fileopen.name)
# 关闭打开的文件
fileopen.close()
8.2 文件的读写操作
8.2.1 read()方法
read()方法从一个打开的文件中读取文件内容。
语法:
fileObject.read([count]);
count:表示要从已打开文件中读取的字符数。如没有该参数,一般是从当前位置读取到文件最后。
例:
# 创建并打开一个文件
f = open("abc.txt", "r+",encoding='utf-8')
print("读取的字符串是 : ",f.read(3),",",f.read())
# 关闭打开的文件
f.close()
abc.txt原文件内容是:
输出结果:
8.2.2 readline()方法
f.readline() 指定文件中读取单独的一行。换行符为 '\n'。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。
# 打开一个文件
f = open("abc.txt", "r",encoding='utf-8')
str = f.readline()
print("读取的字符串是 : ", str)
# 关闭打开的文件
f.close()
输出结果为:
读取的字符串是 : abcdefghijklmnopqrstuvwxyz
8.2.3 readlines()方法
f.readlines():将以列表的形式返回该文件中包含的所有行,列表中的一项表示文件的一行。如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。
# 打开一个文件
f = open("abc.txt", "r",encoding='utf-8')
str = f.readlines()
print("读取的字符串是 : ", str)
# 关闭打开的文件
f.close()
abc.txt源文件的内容为:
输出结果为:
读取的字符串是 : ['abcdefghijklmnopqrstuvwxyz\n', '不存在\n', '23434135']
另一种方式是迭代一个文件对象然后读取每行:
# 打开一个文件
f = open("abc.txt","r",encoding='utf-8')
for line in f:
print(line, end='')
# 关闭打开的文件
f.close()
输出结果为:
abcdefghijklmnopqrstuvwxyz
不存在
23434135
或者:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
with open('abc.txt', encoding='utf-8') as fp:
while True:
line=fp.readline()
if not line:
break
print(line)
输出结果为:
abcdefghijklmnopqrstuvwxyz
不存在
23434135
意:操作大文件时不适用,因为这会消耗大量的内存资源。
8.2.4 write()方法
write():将任何字符串写入一个打开的文件。write()方法不会在字符串的结尾添加换行符('\n'):
语法:
fileObject.write(string);
在这里,被传递的参数是要写入到已打开文件的内容。
例:
# 打开一个文件
f = open("abc.txt","a+",encoding='utf-8')
f.write("好好学习!\n 666\n")
# 关闭打开的文件
f.close()
以追加方式写入新的内容到文件中。结果如下:
abcdefghijklmnopqrstuvwxyz
不存在
23434135好好学习!
666
8.2.5 文件定位操作
tell():返回文件指针的当前位置。
seek(offset [,from]):改变当前文件的位置。Offset变量表示要移动的字节数。from变量指定开始移动字节的参考位置。如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
例:
# 打开一个文件
f = open("abc.txt", "r+",encoding='utf-8')
str = f.read(10);
print("读取的字符串是 : ", str)
# 查找当前位置
position = f.tell();
print("当前文件位置 : ", position)
# 把指针再次重新定位到文件开头
position = f.seek(0, 0);
str = f.read(10);
print("重新读取字符串 : ", str)
# 关闭打开的文件
f.close()
输出结果为:
读取的字符串是 : abcdefghij
当前文件位置 : 10
重新读取字符串 : abcdefghij
8.2.6 重命名和删除文件
Python的 os模块提供了大量的执行文件处理操作的方法,比如重命名和删除文件。注意:要使用这个模块,必须先导入它,然后才可以调用相关的各种功能。下一章节将介绍模块的导入和使用。
一、rename()方法
rename()方法需要两个参数,当前的文件名和新文件名。
语法:
os.rename(current_file_name, new_file_name)
例子:下例将重命名一个已经存在的文件test1.txt。
import os
# 重命名文件abc.txt到f.txt。
os.rename("abc.txt", "f.txt")
二、remove()方法
删除已有的文件。
语法:
os.remove(file_name)
例子:
import os
# 删除一个已经存在的文件abc.txt。
os.remove("abc.txt")
8.2.7 Python中目录操作
所有文件都包含在各个不同的目录下, os模块 有许多方法实现创建、删除和更改目录等操作。
一、mkdir()方法
创建一个新目录。
语法:
os.mkdir("newdir")
例:下例将在当前目录下创建一个新目录test。
import os
# 创建目录test
os.mkdir("test")
结果是创建了test的目录文件夹:
二、getcwd()方法
显示当前的工作目录。
语法:
os.getcwd()
例:下例给出当前目录:
import os
# 给出当前的目录
print(os.getcwd())
结果:
三、rmdir()方法
删除目录,目录名称以参数传递。在删除这个目录之前,它的所有内容应该先被清除。
语法:
os.rmdir('dirname')
例子:以下是删除" test"目录的例子,目录的完全合规的名称必须被给出,否则会在当前目录下搜索该目录。
import os
# 删除”test”目录
os.rmdir("test")
附:其他的文件操作就靠你自己了。
相关推荐
- 纯净系统之家官网(纯净系统基地官网)
-
系统之家发布的Win10纯净版是没有预装激活工具的,您需要自行激活。以下是操作步骤:1.打开“设置”页面,选择“更新和安全”选项。2.在左侧菜单栏中,选择“激活”。3.点击“更改产品密钥”按钮,...
- 免费无限破解版游戏大全下载
-
靠谱助手、烧饼、葫芦侠修改器、八门神器、全能破解就是不用花钱就能买游戏里的商品安全岂见打开飞行模式内购更安全不会扣费手机先ROOT,之后下对应的破解软件,这样成功率比较高。虎牙YOWA云游戏...
-
- 视频相册制作软件免费版(视频相册制作下载)
-
电脑端的软件推荐第一个会声会影,会声会影这个软件简单易上手,制作出来电子相册很美,软件本身简单容易操作,没有水印。第二个推荐快剪辑,快剪辑也是一个制作电子相册非常好的软件,这个软件简单易上手,没有什么操作难度。第三个电脑端的软件编辑星,编辑...
-
2026-01-16 23:51 off999
- win11官网(win11官网激活码多少钱)
-
https://www.microsoft.com/zh-cn/您可以在微软官方网站上找到Windows11系统的下载链接,然后按照官方指导进行下载。首先,打开您的浏览器并访问微软官方网站,然后找到...
- vmospro虚拟机(vmospro虚拟机游戏闪退)
-
VMOSPRO可以用来运行多个安卓系统。因为VMOSPRO是一款虚拟机应用,可以在其中运行多个安卓系统,用户可以在不影响手机原系统的情况下,体验更多的安卓应用和功能。除了运行多个安卓系统外,VMO...
- 法国vs阿根廷(法国vs阿根廷决赛)
-
法国和阿根廷此前一共交手过12次,法国3胜3平6负。世界杯交手了3次,2胜1负。总体战绩法国还是处于下风的。最近一次交锋是2018世界杯八分之一决赛一场比赛中,欧洲劲旅法国队以4-3的比分击败了南美强...
- 百度手机助手下载2025官方正版
-
10年2012年参加的社会保险到2022年的参保对应月应该是整10年。我打个比方:某甲2012年10月份参加了社保,那么到了2022年10月份就是参加社保整整的10年。差不多十年左右吧。2022-20...
- 迅雷手机版高清在线(迅雷手机观看2018)
-
《海派甜心》是可米瑞智国际艺能有限公司出品的一部青春偶像剧。由林合隆执导,杨丞琳、罗志祥、李威主演。腾讯,爱艺奇上都可以观看
-
- itunes官方下载win7版(windows7下载itunes哪个版本)
-
itunes最新版本已经不支持win10以下系统了,很多商店标的支持win7只是没改,官网已经写的很清楚了,最低Windows10版本16299.0或更高版本。64位版本的Windows需要iTunes64位安装程序,4...
-
2026-01-16 22:15 off999
- 破解版传奇游戏无限内购破解版
-
1/6分步阅读首先,我们先去将游戏软件下载下来,点击页面底部位置的下载按钮,开始进行下载。2/6然后,我们在自己的手机桌面上找到已经下载安装完成好了的游戏软件,点击进入。3/6进入到选择登录方式这个页...
- 手机浏览器flash插件(5.4英寸的屏幕)
-
1、在手机的应用商店中,进入到搜索页面之后,输入“Adobeflashplayer”,然后点击搜索,找到就可以安装了2、第二个可以直接通过网页搜索Adobeflashplayer,一定要注意版...
- 最新卫星地图(最新卫星地图高清在线观看)
-
实时地球是中科遥感集团开发的中国卫星影像地图软件,被誉为中国版的“谷歌地球”。在线地球采用遥感集市云平台数据接口,每天动态更新高分辨率卫星影像,同时内置近年历史影像存档数据,所有影像免费开放浏览。用...
- 免费伴奏网(免费伴奏网址大全)
-
推荐下列5个伴奏网:99伴奏网这个网站提供有很多免费伴奏下载,包括男歌手伴奏,女歌手伴奏,组合伴奏,合唱伴奏,民歌伴奏,儿歌伴奏,改版伴奏,戏曲伴奏,婚礼伴奏等。免费伴奏–乱推网一个伴奏搜索下载网站,...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
Python 批量卸载关联包 pip-autoremove
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
