百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

第八课 Python文件的操作(python文件操作总结)

off999 2024-11-13 11:49 38 浏览 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")

附:其他的文件操作就靠你自己了。

相关推荐

安全教育登录入口平台(安全教育登录入口平台官网)

122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...

大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)

大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...

谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)

要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...

2026-02-04 09:03 off999

电信宽带测速官网入口(电信宽带测速官网入口app)

这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...

植物大战僵尸95版手机下载(植物大战僵尸95 版下载)

1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...

免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)

1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...

2025世界杯赛程表(2025世界杯在哪个国家)

2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...

下载搜狐视频电视剧(搜狐电视剧下载安装)

搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...

pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
永久免费听歌网站(丫丫音乐网)

可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...

音乐格式转换mp3软件(音乐格式转换器免费版)

有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...

电子书txt下载(免费的最全的小说阅读器)

1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...

最好免费观看高清电影(播放免费的最好看的电影)

在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...

孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)

要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...

取消回复欢迎 发表评论: