【我奶奶都能看懂系列009】☀️python基础语法——文件,小学生也可以学!

本文介绍了如何使用Python和Golang进行文件操作,包括按行读取、模拟读取大文件、二进制操作以及文件备份。此外,还涉及到云原生概念,并提供了文件和目录操作的示例,如重命名、删除和批量修改文件名。通过这些内容,读者可以深入理解这两种语言在文件处理方面的应用。
摘要由CSDN通过智能技术生成

🌌 专注Golang,Python语言,云原生,人工智能领域得博主;
💜 过去经历的意义在于引导你,而非定义你;
📢 欢迎点赞 👍 收藏 ⭐留言!

在这里插入图片描述

文件的读操作

# 1. 打开文件
f = open('a.txt', 'r', encoding='utf-8')
# 2. 读写文件 文件对象.read(n)  n 一次读取多少字节的内容,默认不写,读取全部内容
buf = f.read(3)
print(buf)  # 123
print('-'*30)
buf = f.read(3)  #
print(buf)
# 3. 关闭文件
f.close()

按行读取文件

# 1. 打开文件
f = open('a.txt', 'r', encoding='utf-8')
# 2. 读写文件 文件对象.read(n)  n 一次读取多少字节的内容,默认不写,读取全部内容
buf = f.read(3)
print(buf)  # 123
print('-'*30)
buf = f.read(3)  #
print(buf)
# 3. 关闭文件
f.close()

模拟读取打文件

f = open('a.txt', 'r', encoding='utf-8')
while True:
    buf = f.readline()
    if buf:  # if len(buf) > 0   容器,可以直接作为判断条件,容器中有内容,为True,没有数据是False
        print(buf, end='')
    else:
        # 文件读完了
        break

f.close()



模拟读取大文件2

f = open('a.txt', 'r', encoding='utf-8')
while True:
    buf = f.readline()
    if buf:  # if len(buf) > 0   容器,可以直接作为判断条件,容器中有内容,为True,没有数据是False
        print(buf, end='')
    else:
        # 文件读完了
        break

f.close()



二进制方式操作文件

f = open('c.txt', 'wb')
f.write('你好'.encode())   # encode() 将str 转换为二进制格式的字符串
f.close()


f1 = open('c.txt', 'rb')
buf = f1.read()
print(buf)
print(buf.decode())
f1.close()

文件备份

file_name = input('请输入要备份的文件名')

# 1. 用只读的方式,打开文件
f = open(file_name, 'rb')
# 2. 读取文件内容
buf = f.read()
# 3. 关闭文件
f.close()

# 根据原文件名,找到文件后缀和文件名
index = file_name.rfind('.')
# 后缀  file_name[index: ]
# 新文件名
new_file_name = file_name[:index] + '[备份]' + file_name[index:]
print(new_file_name)
# 4. 只写的方式,打开新文件
f_w = open(new_file_name, 'wb')
# 5. 将 第 2 步读取的内容写入新文件
f_w.write(buf)
# 6. 关闭新文件
f_w.close()


文件备份2

# 1. 用只读的方式,打开文件
f = open('a.txt', 'rb')
# 2. 读取文件内容
buf = f.read()
# 3. 关闭文件
f.close()
# 4. 只写的方式,打开新文件
f_w = open('a[备份].txt', 'wb')
# 5. 将 第 2 步读取的内容写入新文件
f_w.write(buf)
# 6. 关闭新文件
f_w.close()

文件和目录的操作

# 对文件和目录的操作,需要导入 os 模块
import os

# 1. 文件重命名 os.rename(原文件路径名, 新文件路径名)
# os.rename('a.txt', 'aa.txt')
# 2. 删除文件 os.remove(文件的路径名)
# os.remove('aa.txt')
# 3. 创建目录 os.mkdir(目录路径名)  make directory
# os.mkdir('test')
# os.mkdir('test/aa')

# 4. 删除空目录  os.rmdir(目录名)  remove directory
# os.rmdir('test/aa')
# 5. 获取当前所在的目录 os.getcwd()  get current working directory
buf = os.getcwd()
print(buf)
# 6. 修改当前的目录 os.chdir(目录名)  change dir
os.chdir('test')
buf = os.getcwd()
print(buf)
# 7. 获取指定目录中的内容,  os.listdir(目录), 默认不写参数,是获取当前目录中的内容
# 返回值是列表, 列表中的每一项是文件名
buf = os.listdir()   # test
print(buf)


批量修改文件名

import os


def create_files():
    for i in range(10):
        file_name = 'test/file_' + str(i) + '.txt'
        print(file_name)
        f = open(file_name, 'w')
        f.close()


def create_files_1():
    os.chdir('test')
    for i in range(10, 20):
        file_name = 'file_' + str(i) + '.txt'
        print(file_name)
        f = open(file_name, 'w')
        f.close()
    os.chdir('../')  # ../ 上一级目录


def modify_filename():
    os.chdir('test')
    buf_list = os.listdir()
    # print(buf_list)
    for file in buf_list:
        new_file = 'py43_' + file
        os.rename(file, new_file)

    os.chdir('../')


def modify_filename_1():
    os.chdir('test')
    buf_list = os.listdir()
    # print(buf_list)
    for file in buf_list:
        num = len('py43_')
        new_file = file[num:]
        os.rename(file, new_file)

    os.chdir('../')


# create_files()
# create_files_1()
# modify_filename()
modify_filename_1()
  • 12
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值