python文件操作

一、文件介绍
1、什么是文件

狭义说:文本文件;
广义说:超文本文件, 图片,声音,超链接,视频。

2、文件的分类 文件大体上可以分为两类,文件文件和二进制文件。

3、文件的作用 使用文件的目的是把一些数据存储存放起来。

4、使用文件的流程 我们操作一个文件的流程一般是 打开文件,读写文件,关闭文件。通过程序操作文件 的流程也是这三步,首先打开文件,然后读写文件,最后关闭文件。

二、读写文件简单操作
1、读取文件

file=open("./a.txt",mode="r")
print(file.read())
file.close()

2、写文件

#1.打开文件
file=open("./b.txt",mode="w")
#2.写入内容
ret=file.write("python")
#3.关闭文件
file.close()

mode=‘w’ 表示写文件

注意:如果文件不存在,会自动创建文件(不会创建目录)。

三、文件权限

读取操作r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模 式。
读取操作rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开 头。一般用于非文本文件如图片等。 注意:二进制文件把内容表示为一个特殊的bytes字符串类型
读取操作r+打开一个文件用于读写。文件指针将会放在文件的开头。
读取操作rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开 头。一般用于非文本文件如图片等
写操作wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文 件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在, 创建新文件。一般用于非文本文件如图片等
写操作w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头 开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
写操作wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文 件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在, 创建新文件。一般用于非文本文件如图片等。
写操作a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件 的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文 件不存在,创建新文件进行写入
写操作ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针 将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之 后。如果该文件不存在,创建新文件进行写入。
写操作a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件 的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件 用于读写
写操作ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针 将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

四、文件操作

1、读操作
(1) .read() 调用read()会一次性读取文件的全部内容,如果文件有10G,内存就爆了,会导致程序卡 死,所以,要保险起见,可以反复调用read(size)方法,每次最多读取size个字符的内容。

# read 读取
file=open("./a.txt",mode="r")
read=file.read()
print(read)
file.close()

(2) .readline() readline每次读取一行,并且自带换行功能 每一行末尾会读到\n

##readline读取
# file=open("./a.txt",mode="r")
# ret=file.readline()
# print(ret)
# print(file.readline())
# print(file.readline())
# file.close()

(3) .readlines() Readlines,一次性以行的形式读取文件的所有内容并返回一个list,需要去遍历读出来

##readlines
# file=open("./a.txt",mode="r")
# ret=file.readlines()
# for i in ret:
#     print(i)
# file.close()

(4) .循环读取 file句柄是一个可迭代的对象因此,可以循环读取文件中的内容,每次读一行。

# file = open("./a.txt")
# t = []
# for i in file:
#     print(i)
# file.close()
# # if i % 5==0 or i % 7==0:
# #     t.append(i)
# #     print(t)
# t.append(i)
# print(t)
# for i in eval(t):
#     if int(i) % 5 == 0 or int(i) % 7 == 0:
#         print(t)

# file.close()

2、写操作 (1) .write()

file=open("./i.txt",mode="w")
file.write("aaaaaaaa")
file.write("\n")
file.write("bbbbbbbb")
file.write("\n")
file.write("cccccccc")
file.close()

(2) .writelines() file.writelines(seq) #把seq的内容全部写到文件中(多行一次性写入)。

#writelines
file=open("./o.txt",mode="w")
lst=["aa\n","bb\n","cc\n"]
file.writelines(lst)
file.close()

五、with 使用with方式操作文件,可以不用关闭文件,会自动关闭文件。

with open("./a.txt") as f:
    ret=f.read()
    print(ret)

六、乱码 python读写文件时,默认使用的编码为平台编码,也就是gbk。 在pycharm中创建的文件默认使用的是utf-8编码。

# with open("k.txt",mode="w") as f:
#     f.write("哈哈呵呵嘻嘻咳咳")

# with open("D:/g.txt",mode="w") as f:
#     f.write("呵呵")

# with open("k.txt",mode="w",encoding="utf-8") as f:
#     f.write("嘻嘻")

七、文件其他操作

使用os模块对文件进行一些相关操作

1.重命名文件

#重命名文件
# os.rename("g.txt","a.txt")

2.删除文件

#删除文件
# os.remove("b.txt")

3.创建目录
(1).创建目录 mkdir()

#创建目录
# os.mkdir("file"

4.创建多级目录

#创建多层目录
# os.makedirs("a/b/c/d/f")
  1. 删除目录
#删除目录
# os.rmdir("file")

6.删除多级目录

#删除多层目录
# os.removedirs("a/b/c/d/f")

若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推。

如果上一层目录不为空则停止删除文件。如果file04不为空则报错。

7.获取当前所在目录
getcwd()

#获取当前目录
# path=os.getcwd()
# print(path)

8.获取目录列表

#获取当前文件列表
# lst=os.listdir(os.getcwd())
# print(lst)
  1. 切换所在目录 chdir()
    改变当前脚本工作目录

#切换所在目录
# os.mkdir("file")
# os.chdir(os.getcwd()+"\\file")
# print(os.getcwd())

10.判断文件或文件夹是否存在 os.path.exits(path)

# #判断文件是否存在
# path=os.path.exists("text")
# print(path)

11.判断是否为文件

# #判断是否为文件
# bool=os.path.isfile("7.with.py")
# print(bool)

12.判断是否为目录

# #判断是否为目录
# bool=os.path.isdir("file")
# print(bool)
  1. 获取绝对路径
# #获取当前文件的路径
# print(__file__)

14、 判断是否为绝对路径

# #判断是否为绝对路径
# bool=os.path.isabs(os.getcwd("C:\\work\\docmont\\k.txt"))
# print(bool)
  1. 获取路径中的最后部分
# #获取当前路径的最后部分
# path=os.path.basename(__file__)
# print(path)

16、 获取路径中的路径部分 获取父目录部分。(不管最后是文件还是文件夹)

# #获取路径中的父目录部分
# path=os.path.dirname(__file__)
# print(path)

17、 将多个目录组织成路径返回

# #将多个目录组织成路径返回
# ret=os.path.join("file","ag","sada")
# print(ret)

18.获取文件信息
(1.)getatime()返回path所指向的文件或者目录的最后访问时间

# #获取文件最后访问的时间
# acess_time=os.path.getatime("C:\\work\\docmont\\k.txt")
# print(acess_time)

(2.)getctime()查看文件创建时间

# #获取文件创建的时间
# create_time=os.path.getctime("C:\\work\\docmont\\k.txt")
# print(create_time)

(3.).getmtime()返回path所指向的文件或者目录的最后修改时间

# # #获取最后修改的时间
# modify_time=os.path.getmtime("C:\\work\\docmont\\k.txt")
# print(modify_time)

(4.)getsize()查看文件的大小

# # #查看文件大小
# file_size=os.path.getsize("C:\\work\\docmont\\k.txt")
# print(file_size)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值