Python基础之文件

本文介绍了Python中文件的基本操作,包括打开、读写和关闭文件,详细讲解了read、write、readline等方法的使用。同时,还阐述了不同打开模式(如r、w、a等)的应用。此外,还展示了如何按行读取大文件以及文件复制的实例。最后,提到了os模块在文件和目录管理中的应用,如重命名、删除和创建目录等操作。
摘要由CSDN通过智能技术生成

1、文件基本操作

1.1 文件操作套路

1.打开文件

2.读、写文件

读文件:将文件内容读入内存中

写文件:将内存内容写入文件中

3.关闭文件

1.2 操作文件的函数/方法

open:打开文件,并返回文件操作对象

read:将文件内容读取到内存

write:将指定内容写入到文件

close:关闭文件

open函数负责打开文件,并且返回文件对象

open/read/write三个方法都需要文件对象来调用

1.3 read读取文件

open函数的第一个参数是要打开文件名(区分大小写)

如果文件存在返回文件操作对象,不存在报错

read方法一次性读入返回文件的所有内容

close方法负责关闭文件,如果忘记关闭文件,会造成系统资源消耗,并且影响后续对文件访问。

注意:read方法执行后,文件指针移动到文件末尾

file = open("readme")

text = file.read()
print(text)

file.close()

1.4 打开文件的方式

open函数默认以只读方式打开文件并返回文件对象

f = open("访问文件名", "访问方式")

访问方式:

r:只读 # 以只读方式打开文件,文件指针在文件开头,文件不存在,报错

w:只写 #以只写的方式打开文件,如果文件存在,覆盖,不存在,创建新文件

a:追加 # 以追加方式打开文件,如果文件已经存在,文件指针在文件结尾,文件不存在,创建新文件进行写入

r+:读写 # 以读写的方式打开文件,文件的指针将放在文件开头,文件不存在报错

w+:读写  # 读写的方式打开文件,文件存在,覆盖,文件不存在,创建新文件

a+:读写  # 以读写的方式打开文件,文件指针将放在文件结尾,文件不存在,创建新文件写入

提示:频繁移动指针会影响文件读写效率,开发中更多以只读只写方式来操作文件

1.5 按行读取文件内容

read方法默认会把文件的所有内容一次性读取到内存

如果文件太大,对内存占用会非常严重

readline方法

readline方法可以一次读取一行内容

方法执行后,会把文件指针移动到下一行,准备再次读取

file = open("new.txt", "r")
text = file.readline()  # 只读一行内容
print(text)  # 默认自动换行,打印一行会空一行
while True:
    line_text = file.readline()
    print(line_text, end="")
    if len(line_text) == 0:
        break
file.close()

1.6 文件读写案例

小文件复制

# 1.打开文件
file_read = open("new.txt")
file_write = open("copy_new.txt", "w")

# 2.读取并写入文件
text = file_read.read()
file_write.write(text)

# 3.关闭文件
file_read.close()
file_write.close()

大文件复制

file_read = open("new.txt")
file_write = open("copy2_new.txt", "w")

while True:
    text = file_read.readline()

    if not text:
        break

    file_write.write(text)

file_read.close()
file_write.close()

2.文件/目录的常用管理操作

在终端/文件浏览器中可以执行常规的文件/目录管理操作,例如:

创建、重命名、删除、改变路径、查看目录内容

在python中,如果希望通过程序实现上述功能,需要倒入o s模块

文件操作:

rename:重命名文件    os.rename(源文件名,目标文件名)

remove:删除文件  os.remve(文件名)

目录操作:

listdir:目录列表  os.listdir(目录名)

mkdir:创建目录   os.mkdir(目录名)

rmdir:删除目录  os.rmdir(目录名)  # 只能删除空目录

shutil.rmtree(目录名)

getcwd:获取当前目录  os.getcwd()

chdir:修改工作目录  os.chdir(目标目录)

path.isdir:判断是否是文件  os.path.isdir(文件路径)

path.exists:判断制定文件或者目录是否存在  os.path.exists(文件名)

def plcjwj():
    """批量创建文件"""
    print(os.getcwd())
    if os.path.exists("./file"):
        shutil.rmtree("./file")
    os.mkdir("file")
    os.chdir("./file")
    print(os.getcwd())
    # 批量创建文件
    for i in range(1, 21):
        file = open("new%d.txt" % i, "w", encoding="utf-8")
        file.write("循环创建文件")
        file.close()


def plcmmwj():
    print(os.getcwd())
    path = "/users/xiaobo/PycharmProjects/pythonProject/python_jichu/file"
    if os.getcwd() != path:
        os.chdir(path)
    file = os.listdir()
    print(file)
    for name in file:
        os.rename(name, "demo" + name)


plcjwj()
plcmmwj()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值