Python零基础入门教程08 文件操作

前言

学无止境,无止境学。大家好,我是张大鹏,之前在抖音有5万多粉丝,不过现在不拍视频,专心写公众号了。笔者目前是高级Python工程师,之前是全栈工程师,主要擅长Golang和Python开发,对于JavaVue,React也有一些研究。工作之余,喜欢学习和分享,希望能够通过此公众号”张大鹏520″,将自己学到的东西分享给大家,和大家一起交流,一起成长,一起进步。

今天要给大家分享的是《Python零基础入门教程08 文件操作》,这是一个系列的教程,从零基础到项目实战。在本教程中,我会给大家介绍Python中常用的文件操作。读写文件,复制文件,删除文件,删除目录等。还会配套相关的练习,大家学完以后可以自行通过练习题巩固和加深对知识点的理解。

如果大家需要本教程的PDF电子书或者完整的源码,可以在文末找到获取方式哈。

01 文件的读写

写入文件

在Python中,要写入文件,一般需要打开文件,写入数据,关闭文件这三个步骤,常用方法如下:

  • f = open(文件路径,访问模式):打开指定路径的文件
  • f.write(字符串):向文件中写入指定字符串的内容
  • f.close():关闭文件

示例代码:

# 1. 打开 open()
f = open('./test.txt''w')

# 2. 读写操作 write() read()
f.write('aaan')
f.write('bbbn')
f.write('cccn')

# 3. 关闭 close()
f.close()

文件的方式模式

文件的访问模式除了写入,还有读取和追加。常见的文件访问模式如下:

  • r:读取文件
  • w:写入文件
  • a:追加文件内容

示例代码:

file_path = "test.txt"

# `r`:读取文件
f = open(file_path, "r")
print(f.read())
f.close()

# `w`:写入文件
f = open(file_path, "w")
f.write("hello file!n")
f.close()

# `a`:追加文件内容
f = open(file_path, "a")
f.write("I'm ZhangDapeng.n")
f.close()

读取所有行

使用方法f.readlines()可以一次性读取文件的所有行,返回一个列表。

示例代码:生成10个包含姓名,年龄,性别的用户数据,写入文件,然后读取该文件的所有行,遍历每行输出。

import zdppy_random

file_path = "test.txt"

# 准备数据
f = open(file_path, "w", encoding="utf8")
for _ in range(10):
    f.write(f"{zdppy_random.random_name()},{zdppy_random.random_int(0120)},{zdppy_random.random_gender()}n")
f.close()

# 读取所有行
f = open(file_path, "r", encoding="utf8")
lines = f.readlines()
[print(line, end=""for line in lines]
f.close()

读取单行

使用方法f.readline()可以读取文件的每一行,这种读取方法比较麻烦,要读取完所有内容,需要使用循环。

示例代码:生成10个包含姓名,年龄,性别的用户数据,写入文件,然后读取该文件的所有行,遍历每行输出。

import zdppy_random

file_path = "test.txt"

# 准备数据
f = open(file_path, "w", encoding="utf8")
for _ in range(10):
    f.write(f"{zdppy_random.random_name()},{zdppy_random.random_int(0120)},{zdppy_random.random_gender()}n")
f.close()

# 读取所有行
f = open(file_path, "r", encoding="utf8")
while True:
    line = f.readline()
    if line:
        print(line, end="")
    else:
        break
f.close()

输出结果:

毋良翰,41,男
荀文山,95,女
裘锐阵,108,女
乜翰飞,12,女
匡文光,97,女
缑亢坚白,119,女
杜雨星,107,女
闾丘昂然,8,男
瞿俊楚,79,女
蔡英锐,39,女

02 文件的高级操作

文件的备份

文件备份的原理实际上非常简单,就是将原本文件的内容读取出来,然后写入到一个新的文件即可,基本执行流程如下:

  • 1、读取源文件
  • 2、写入新文件

示例代码:文件备份

import zdppy_random

file_path = "test.txt"

# 准备数据
f = open(file_path, "w", encoding="utf8")
for _ in range(10):
    f.write(f"{zdppy_random.random_name()},{zdppy_random.random_int(0120)},{zdppy_random.random_gender()}n")
f.close()

# 读取文件
# 一种可以自动关闭文件的写法,可以省略掉close()
with open(file_path, "r", encoding="utf8"as f:
    # 写入文件
    with open(file_path + ".back""w", encoding="utf8"as ff:
        ff.write(f.read())

文件和文件夹操作

Python内置了很多方法方便我们去操作文件和文件夹,常见的如下:

  • os.rename(旧名字,新名字):重命名文件名,也可以重命名文件夹名
  • os.remove(文件路径):删除文件
  • os.mkdir(文件夹名):创建新的文件夹
  • os.rmdir(文件夹名):删除空的文件夹,注意,只能删除空文件夹
  • os.getcwd():获取当前文件所在的目录路径,是一个绝对路径
  • os.chdir(目录路径):切换目录路径
  • os.listdir(目录路径):获取指定目录下的所有文件路径,包括子文件夹路径

为了便于案例的学习,我们设计的虚拟的需求如下:

  • 1、创建文件夹test
  • 2、进入文件夹test
  • 3、创建文件test.txt和test2.txt
  • 4、将test.txt改名为test1.txt
  • 5、删除文件test1.txt
  • 6、切换到父级目录
  • 7、查看test目录下的所有文件
  • 8、删除test目录下的test2.txt文件
  • 9、查看当前路径
  • 10、重命名test目录为test1目录
  • 11、删除test1目录

示例代码:

import os
import time

# 1、创建文件夹test
os.mkdir("test")
time.sleep(1)

# 2、进入文件夹test
os.chdir("test")
print(os.getcwd())
time.sleep(1)

# 3、创建文件test.txt和test2.txt
with open("test.txt""w"as f:
    f.write("aaa")
with open("test2.txt""w"as f:
    f.write("bbb")
print(os.listdir())
time.sleep(1)

# 4、将test.txt改名为test1.txt
os.rename("test.txt""test1.txt")
print(os.listdir())
time.sleep(1)

# 5、删除文件test1.txt
os.remove("test1.txt")
print(os.listdir())
time.sleep(1)

# 6、切换到父级目录
os.chdir("..")

# 7、查看test目录下的所有文件
print(os.listdir("test"))
time.sleep(1)

# 8、删除test目录下的test2.txt文件
os.remove("test/test2.txt")

# 9、查看当前路径
print(os.getcwd())

# 10、重命名test目录为test1目录
os.rename("test""test1")
time.sleep(1)

# 11、删除test1目录
os.rmdir("test1")
time.sleep(1)

输出结果如下:

D:studystudy_pythonz01_video_studyz01_HM_AI_2022z01_basicz08_文件操作practice01test
['test.txt', 'test2.txt']
['test1.txt', 'test2.txt']
['test2.txt']
['test2.txt']
D:studystudy_pythonz01_video_studyz01_HM_AI_2022z01_basicz08_文件操作practice01

批量删除

需求:删除当前文件夹下以test开头的文件。

示例代码:

import os

for f in os.listdir():
    if f.startswith("test"):
        print(f, type(f))
        os.remove(f)

输出结果:

test.txt <class 'str'>
test.txt.back <class 'str'>

结语

关注我不迷路,欢迎关注我的微信公众号”张大鹏520″,如果您对此文章感兴趣,欢迎点赞收藏,留言评论。

文中所有代码,只需要打赏20元,然后留言评论“已打赏”,即可获取哦。

本文的PDF电子书版,只需要打赏3元,然后留言评论“已打赏”,即可获取哦。

写文章不容易,不喜勿喷哈,如果有想要学编程,学项目,或者在工作中有项目难以单独完成需要提供帮助的同学,欢迎私信我哈。生活不易,想要利用学到的编程知识,业余赚点零花钱。

接项目:网站开发,APP开发,各种管理系统开发。

带徒弟:Python编程教学,Golang编程教学,前端编程教学。

谢谢您!!!


原文始发于微信公众号(张大鹏520):Python零基础入门教程08 文件操作

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/48529.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!