当前位置 : 主页 > 编程语言 > python >

Python ❀ 文件操作

来源:互联网 收集:自由互联 发布时间:2022-06-27
Python学习计划(八) 文件操作 一、路径 1、构建通用路径 Windows、Linux os系统上路径分隔符不同,所以最好统一 os . path . join ( 'usr' , 'bin' , 'temp' ) 2、当前目录 获取当前目录路径 os . ge

Python学习计划(八)

文件操作

一、路径
1、构建通用路径
Windows、Linux os系统上路径分隔符不同,所以最好统一

os.path.join('usr','bin','temp')

2、当前目录
获取当前目录路径

os.getcwd()

改变当前路径

os.chdir(path)

3、绝对路径于相对路径
绝对路径:总是从根文件夹开始
.\ 代表当前路径
相对路径:相对于程序的当前工作目录
…\代表父目录路径

4、处理决定路径和相对路径

os.path.abspath(path):将相对路径转为绝对路径
os.path.isabs(path):判断是否为绝对路径
os.path.relpath(path,start):返回从start路径到path的相对路径的字符串,没start使用当前
os.path.basename(filepath):返回文件路径最后的文件名
os.path.dirname(filepath):返回文件路径的文件名
os.path.split(filename):分别返回文件路径和文件名

5、查看路径有效性

os.path.exists(path):检查路径是否存在
os.path.isfile(path):检查文件是否存在
os.path.isdir(path):检查文件夹是否存在

二、文件夹于文件
1、创建文件夹

os.makedirs(path)

2、文件的打开与关闭
(1)基本操作流程:
打开文件,或者建立一个文件
读/写数据
关闭文件
(2)打开文件:
使用open函数,可以打开一个已经存在的文件,或者创建一个新的文件

open(文件名,访问模式)

例如:

f = open('test.txt',w)

访问模式列表:

访问模式

说明

r

以只读方式打开文件。文件的指针将会放在文件的开头,这是默认模式。

w

打开一个文件只用于写入。如果该文件已经存在则将其覆盖。如果文件不存在,创建新文件。

a

打开一个文件用于追加。如果该文件已经存在,文件指针会放在文件的结尾。也就是说,新的内容写入到已有内容之后,如果该文件不存在,创建新文件进行写入。

rb

以二进制格式打开一个文件用于只读,文件指针将会放在文件的开头,这是默认模式。

wb

以二进制格式打开一个文件只用于写入,如果该文件已存在则将其覆盖。,如果该文件不存在,创建新文件。

ab

以二进制格式打开一个文件用于追加,如果该文件已存在,文件指针将会放在文件的结尾,也就是说文件的内容将会被写入到已有的内容之后,如果该文件不存在,创建新文件进行写入。

r+

打开一个文用于读写。文件指针将会放在文件的开头。

w+

打开一个文件用于读写。如果该文件已存在则将其覆盖。如果不存在,创建新文件。

a+

打开一个文件用于读写。如果该文件已存在,文指针将会放在文件的结尾。文件打开时会是覆盖后的内容,如果文件不存在,创建新文件。

rb+

以二进制格式打开一个文件用于读写,文件指针将会放在文件的开头。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创新新文件。

ab+

以二进制格式打开一个文件用于追加。如果文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

(3)关闭文件:
调用close()函数

f.close()

3、文件读写
(1)write函数:向文件写入数据

f = open('test.txt','w')
f.write('hello world,I am here')
f.close()

注意:如果文件不存在则创建,如果存在则先请空,然后再写入数据
(2)read(num)函数:
以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据

f = open('test.txt','r')
conuent = f.read(5)
print(content)
print("-"30)
content = f.read()
print(content)
f.close()

注意:

  • 如果open仅仅读取一个文件,那么可以不用写打开的模式,即只写open(‘test.txt’)
  • 如果使用读了多次,那么后面读取的数据是从上次读完后的位置开始的
  • 读取的文件如果包含中文时,最好open(‘test.txt’,encoding=‘utf-8’)

(3)tell()函数:获取当前读写的位置

(4)seek(offset,from)函数:定位到某个位置

  • offset:偏移量
  • from:方向
  • 0:表示文件开头
  • 1:表示当前位置
  • 2:表示文件末尾

4、文件和文件夹的复制
需要导入shutil模块

shutil.copy(原路径,目标路径)
shutil.copytree(原路径,目标路径)

注意:

  • copy(文件路径,文件夹路径):将文件复制到文件夹
  • copy(文件路径,文件路径):复制文件并重命名os.rename()
  • copytree复制文件夹所以内容

5、文件和文件夹的移动与改名

shutil。move(目标,目的)

注意:

  • 目标为文件,目的为已知目录,则移动文件
  • 目标为文件,目的为路径不存在的目录,则为文件无后缀名
  • 目标为文件,目的为文件,则移动文件并改名
  • 目标为文件,目的为路径不存在的文件,报错

6、文件和文件夹的删除

os.unlink(path):删除文件
os.remove(path)
os.rmdir(path):删除文件夹,必须为空
shutil.rmtree(path):删除文件夹,全删

(1)安全删除:
需导入send2trash模块

send2trash.send2trash(aim)

删除时入回收站,但不恢复

(2)另外将二进制数据(变量)持久化保存
写入操作:
导入shelve库

shelf = shelve.open('文件'):打开文件,没有则新建
shelf[key]=value:以键值对方式保存,类似于字典
shelf.close():关闭

读取操作:
导入shelve库

shelf = shelve.open('文件'):打开文件,没有则新建
shelf[key]:读取数据
shelf.close():关闭

同样拥有key(),values()方法获取所有键和值

创作者:Eric· Charles


上一篇:Python ❀ 内置数据类型(二)
下一篇:没有了
网友评论