Python文件操作

文件介绍

1、什么是文件?
狭义说:文本文件;广义说:超文本文件, 图片,声音,超链接,视频。
示例如下图:
在这里插入图片描述
2、文件的分类
文件大体上可以分为两类,文件文件和二进制文件。
3、文件的作用
使用文件的目的是把一些数据存储存放起来。
4、使用文件的流程
我们操作一个文件的流程一般是 打开文件,读写文件,关闭文件。通过程序操作文件 的流程也是这三步,首先打开文件,然后读写文件,最后关闭文件。

读写文件简单操作

1、读取文件

file = open("C:/Users/1/Desktop/weiai.txt",mode="r")
ret = file.read()  # 读取文件中的所有内容
print(ret)
file.close()

在这里插入图片描述
file叫做文件句柄(变量)用来操作文件
第一个参数是文件的路径
第二个参数 mode=访问文件的模型,r 表示读,默认也是r 模式

2、写文件

file=open("C:/Users/1/Desktop/a.txt",mode="w")
file.write("Python") # 写文件
file.close()

在这里插入图片描述
mode=‘w’ 表示写文件
注意:如果文件不存在,会自动创建文件(不会创建目录)

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

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

file=open("C:/Users/1/Desktop/weiai.txt")
ret=file.read(3)  # 每次读3个字符
print(ret)  # Pyt
file.close()

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

file=open("C:/Users/1/Desktop/weiai.txt")
ret=file.readline() # Python
print(len(ret)) # 7 末尾有一个换行符\n
print(ret)
print(file.readline())
print(file.readline(3))  # 读取指定个字符
file.close()

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

file=open("C:/Users/1/Desktop/weiai.txt")
ret=file.readlines()
print(ret)  # ['Python\n', 'hello\n', 'java\n', '\n']

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

file = open("C:/Users/1/Desktop/weiai.txt")
for line in file:
    print(line)

在这里插入图片描述

2、写操作
(1) write()

file = open("C:/Users/1/Desktop/weiai.txt",mode="w")
file.write("aaaaaa")
file.write("bbbbbb")
file.close()

在这里插入图片描述
(2)writelines()
file.writelines(list) #把list的内容全部写到文件中(多行一次性写入)。

file = open("C:/Users/1/Desktop/weiai.txt",mode="w")
file.write("aaaaaa")
file.write("bbbbbb")

list = ["a,b,c,d","abcdefg"]
file.writelines(list)  #把list的内容全部写到文件中(多行一次性写入)。
file.close()

在这里插入图片描述
(3)write和writelines的区别

① write()需要传入一个字符串做为参数,否则会报错

②writelines()既可以传入字符串又可以传入一个字符序列,并将该字符序列写入文件

③注意必须传入的是字符序列,不能是数字序列

3、其他操作
(1).tell()
tell获取文件当中当前光标所在的位置

file = open("C:/Users/1/Desktop/weiai.txt",mode="r")
ret = file.read(3)
pos = file.tell()
print(pos) # 3
print(ret)
file.close()

(2)seek()
seek():移动文件读取指针(光标)到指定位置
(3)name和mode
file.name 返回 路径
file.mode 返回 文件读写模式

file = open("C:/Users/1/Desktop/weiai.txt",mode="r")
print(file.name)  # C:/Users/1/Desktop/weiai.txt,返回路径
print(file.mode)  # r
with

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

with open("C:/Users/1/Desktop/weiai.txt") as file:
    ret = file.read()
    print(ret)
乱码

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

在这里插入图片描述

文件的其他操作

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

import os

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

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


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

# 删除目录
os.rmdir("file")

# 创建多层目录
os.makedirs("a/b/c/d/f/g/d")

# 删除多层目录
os.removedirs("a/b/c/d/f/g/d")
"""
若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推。
如果上一层目录不为空则停止删除文件。如果file04不为空则报错。 
"""
  
# 获取当前目录
path=os.getcwd()
print(path)

# 获取当前文件列表
lst=os.listdir(os.getcwd())
print(lst)

# 切换所在目录
# os.mkdir("file")
os.chdir(os.getcwd()+"\\file")
print(os.getcwd())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值