Python文件操作基础教程

您所在的位置:网站首页 使用open打开文件 Python文件操作基础教程

Python文件操作基础教程

2023-04-02 09:32| 来源: 网络整理| 查看: 265

1.文件操作概述 1.什么是文件

内存中存放的数据在计算机关机后就会消失。要长久保存数据,就要使用硬盘、光盘、U 盘等设备。为了便于数据的管理和检索,引入了**“文件”**的概念。 一篇文章、一段视频、一个可执行程序,都可以被保存为一个文件,并赋予一个文件名。操作系统以文件为单位管理磁盘中的数据。一般来说,文件可分为文本文件、视频文件、音频文件、图像文件、可执行文件等多种类别。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yZ3S49q4-1680137058520)(image-20230328160417574.png)]

2.文件操作的作用

文件操作的作用就是把一些内容(数据)存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力。

2.文件的基本操作 1.文件的操作步骤

想想我们平常对文件的基本操作,大概可以分为三个步骤(简称文件操作三步走): ① 打开文件 ② 读写文件 ③ 关闭文件

注意:可以只打开和关闭文件,不进行任何读写

2.open()打开函数

在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下

open(name, mode)

name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。 mode:设置打开文件的模式(访问模式):只读、写入、追加等。

示例代码:

f = open('python.txt', 'r')

注意:此时的f是open函数的文件对象,对象是Python中一种特殊的数据类型,拥有属性和方法,可以使用对象.属性或对象.方法对其进行访问,后续面向对象课程会给大家进行详细的介绍。

3.mode访问模式详解 模式描述r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。r+打开一个文件用于读写。文件指针将会放在文件的开头。rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 4.写操作快速入门 1.写操作快速入门 # 1. 打开文件 f = open('python.txt', 'w') # 2.文件写入 f.write('hello world') # 3. 关闭文件 f.close()

注意: w模式和a模式:如果文件不存在则创建该文件;如果文件存在,w模式先清空再写入,a模式直接末尾追加。 r模式:如果文件不存在则报错。

2.读操作相关方法 1.read()方法:

num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。

文件对象.read(num) 2.readlines()方法:

readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。

f = open('python.txt') content = f.readlines() # ['hello world\n', 'abcdefg\n', 'aaa\n', 'bbb\n', 'ccc'] print(content) # 关闭文件 f.close() 3.readline()方法

readline()方法:一次读取一行内容,每运行一次readline()函数,其就会将文件的指针向下移动一行

f = open('python.txt') content = f.readline() print(f'第一行:{content}') content = f.readline() print(f'第二行:{content}') # 关闭文件 f.close() 4.seek()方法

seek()方法用来移动文件指针

文件对象.seek(offset,whence=0)

offset:开始的偏移量,也就是代表需要移动偏移的字节数 whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

如果操作成功,则返回新的文件位置,如果操作失败,则函数返回 -1。

>>> f = open('workfile', 'rb+') >>> f.write(b'0123456789abcdef') 16 >>> f.seek(5) # 从0开始向右移动5个字节 5 >>> f.read(1) b'5' >>> f.seek(-3, 2) # 从右向左移动3个字节 13 >>> f.read(1) b'd'

r:Python 将会按照编码格式进行解析,read() 操作返回的是str rb:也即 binary mode,read()操作返回的是bytes

重置指针到文件的开头:

f.seek(0)

f.seek(0, 0) 5.close()方法

基本语法:

文件对象.close()

3.文件备份案例

文件备份代码实现

备份文件写入数据

打开源文件 和 备份文件 将源文件数据写入备份文件 关闭文件

old_name = input('请输入您要备份的文件名:') index = old_name.rfind('.') if index > 0: postfix = old_name[index:] new_name = old_name[:index] + '[备份]' + postfix old_f = open(old_name, 'rb') new_f = open(new_name, 'wb') while True: con = old_f.read(1024) if len(con) == 0: break new_f.write(con) old_f.close() new_f.close() 4.文件和文件夹的操作

1.os模块

在Python中文件和文件夹的操作要借助os模块里面的相关功能,具体步骤如下: ① 导入os模块

import os

② 还用os模块的相关功能

os.函数()

2.文件操作

编号函数功能1os.rename(目标文件名称,新文件名称)对文件进行重命名操作2os.remove(要删除文件名称)对文件进行删除操作

案例:把Python项目目录下的python.txt文件,更名为linux.txt,查看效果后,对文件进行删除操作。

# 1、导入os模块、time模块 import os import time # 2、调用rename方法实现重命名(需要手工刷新左侧导航栏) os.rename('python.txt', 'readme.txt') # 3、调用time模块中的sleep方法休眠100s time.sleep(100) # 4、删除readme.txt文件 os.remove('readme.txt')

3.文件夹操作

编号函数功能1os.mkdir(新文件夹名称)创建一个指定名称的文件夹2os.getcwd()current work directory,获取当前目录名称3os.chdir(切换后目录名称)change directory,切换目录4os.listdir(目标目录)获取指定目录下的文件信息,返回列表5os.rmdir(目标目录)用于删除一个指定名称的"空"文件夹

案例:准备一个static文件夹以及file1.txt、file2.txt、file3.txt三个文件 ① 在程序中,将当前目录切换到static文件夹 ② 创建一个新images文件夹以及test文件夹 ③ 获取目录下的所有文件 ④ 移除test文件夹

代码实现:

# 1、导入os模块 import os # 2、将当前工作目录切换到static文件夹 os.chdir('static') # print(os.getcwd()) # 3、创建images以及test文件夹 os.mkdir('images') os.mkdir('test') # 4、获取目录下的所有文件 for i in os.listdir(): print(i) # 5、移除test文件夹 os.rmdir('test') 5.文件操作应用案例

需求分析:批量修改文件名,既可添加指定字符串,又能删除指定字符串。

步骤: ① 设置添加删除字符串的的标识 ② 获取指定目录的所有文件 ③ 将原有文件名添加/删除指定字符串,构造新名字 ④ os.rename()重命名

import os # 设置标识:如果为1则添加指定字符,flag取值为2则删除指定字符 flag = 1 # 获取指定目录 dir_name = './static' # 获取指定目录的文件列表 file_list = os.listdir(dir_name) # print(file_list) # 遍历文件列表内的文件 for name in file_list: # 添加指定字符 if flag == 1: new_name = 'Python-' + name # 删除指定字符 elif flag == 2: num = len('Python-') new_name = name[num:] # 打印新文件名,测试程序正确性 print(new_name) # 重命名 os.rename(dir_name+name, dir_name+new_name)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3