Python进阶:Python的文件读写

1 概述

1.1 案例介绍

在Python中,文件读写是一个基础而重要的操作。Python提供了多种方式来读取和写入文件,包括使用内置的open函数和几种不同的模式。

1.2 适用对象

  • 个人开发者
  • 高校学生

1.3 案例时间

本案例总时长预计40分钟。

1.4 案例流程

image.png 说明: ① 用户开通华为开发者空间,进入云主机; ② 在CodeArts IDE 编写代码进行Python文件读写学习。

1.5 资源总览

本案例预计花费总计0元。 | 资源名称 | 规格 | 单价(元) | 时长(分钟) | |-------------------|------------------------------------------|----------------|------------------| |开发者空间—云主机 |2vCPUs | 4GB X86 CodeArts IDE for Python|免费|40|

2 准备开发环境

2.1 配置云主机并进入

参考“10分钟玩转云主机” 案例介绍中“2.2 申请云主机”章节内容完成华为开发者空间云主机申请与配置,配置云主机建议:“CPU架构”选择“X86”,“操作系统”选择“Ubuntu”。 image.png 然后点击“进入桌面”进入云主机。 image.png

2.2 使用CodeArts IDE创建工程

参考“初识云主机:CodeArts IDE入门”案例介绍“3.1 新建工程”章节新建工程。 新建的工程包含如下三个目录文件部分: | 目录文件 | 说明 | |-------------------|------------------------------------------| |.arts| CodeArts的配置文件| |venv |虚拟环境| |main.py| 默认生成的入口文件|

image.png

3 Python中的文件读写

文件读写是计算机中最常见的IO操作,在Python中进行文件读写操作是一个非常基础且重要的技能,掌握这一技能对于开发高效、可靠的程序至关重要。常见的文件格式有:文本文件、图片文件、音视频文件、数据文件等。

3.1 打开文件

在Python中,使用open函数来打开文件。语法如下: open(file_name,mode,encoding) - file_name是要打开的文件名 - mode是打开文件的模式,默认为只读模式’r’ - encoding是编码,默认情况下使用utf-8 常见的模式包括: - ‘r’:默认只读模式 - ‘w’:写入模式,会覆盖原有内容 - ‘a’:追加模式,在文件末尾添加内容 - ‘b’:二进制模式,与其他模式组合使用,如’rb’或’wb’ 实现在开发者空间打开一个文件。首先在开发者空间桌面创建一个demo.txt的文件,然后按照如下代码进行打开文件操作。 代码示例:

import os
file=open("/home/developer/Desktop/demo.txt",'rt+') 
print(file)

3.2 写入文件

3.2.1 写入文本

在Python中,使用write函数可以向文件中写入内容: 实践:打开demo.txt文件,写入"hello world 你好世界"。 注意:python是一个依赖于格式的语言,代码需要保持和样例相同的缩进。 Step1:删除“main.py”中原有内容,输入下列代码。 代码示例:

import os
if __name__ == '__main__':
    print(os.getcwd()) #输出 /home/developer/CodeArtsProjects/PythonDemo

    with open("demo.txt","w",encoding="utf-8") as file:
        file.write("Hello World\n")
        file.write("你好世界")

Step2:点击右上角“运行”按钮之前,左边工程目录下没有demo.txt文件。 image.png

Step3:点击右上角“运行”按钮,左边工程目录下出现demo.txt文件并且写入了数据。 image.png

3.2.2 追加内容

使用‘a’模式可以在文件末尾追加内容: 实践:在demo.txt文件末尾追加内容:“我是新加的内容”。 Step1:删除“main.py”中原有内容,输入下列代码。

import os

if __name__ == '__main__':

    print(os.getcwd()) #输出 /home/developer/CodeArtsProjects/PythonDemo

    with open("demo.txt","a",encoding="utf-8") as file:
        file.write("\n我是新加的内容")

Step2:点击右上角“运行”按钮, demo.txt文件中追加了新内容。 image.png

3.2.3 写入多行

使用writelines方法可以一次性写入多行内容: 实践:在demo.txt文件中一次性写入多行内容。 Step1:删除“main.py”中原有内容,输入下列代码。

import os

if __name__ == '__main__':

    print(os.getcwd()) #输出 /home/developer/CodeArtsProjects/PythonDemo

    lines=['\n我是第一行内容\n','我是第二行内容\n','我是第三行内容\n']

    with open("demo.txt","a",encoding="utf-8") as file:
        file.writelines(lines)

Step2: 点击右上角“运行”按钮,左边工程目录下的demo.txt文件中写入多行数据。

image.png

3.3 读取文件

3.3.1 读取全部内容

使用read方法可以一次性读取文件的全部内容: 实践:一次性读取demo.txt文件中所有内容。 Step1:删除“main.py”中原有内容,输入下列代码。

if __name__ == '__main__':

    with open("demo.txt","r",encoding="utf-8") as file:
        content = file.read()
        print(content)

Step2:点击右上角“运行”按钮,控制台打印出读取的内容。 image.png

3.3.2 按行读取

使用readlines方法可以按行读取文件内容: 实践:按行读取demo.txt文件中所有内容。 Step1:删除“main.py”中原有内容,输入下列代码。

if __name__ == '__main__':

    with open("demo.txt","r",encoding="utf-8") as file:
        lines = file.readlines()
    for line in lines:
        print(line.strip())# 去除换行符

Step2:点击右上角“运行”按钮,控制台打印出读取的内容。 image.png

3.4 高级库与模块

3.4.1 csv模块
3.4.1.1 写入CSV文件

实践:向demo.csv文件中写入内容。 Step1:删除“main.py”中原有内容,输入下列代码。

import csv

if __name__ == '__main__':

    data = [['姓名', '年龄', '城市'],['张三', 30, '北京'],['李四', 25, '上海']]

    with open("demo.csv","w",encoding="utf-8") as file:
        writer = csv.writer(file)
        writer.writerows(data)

Step2:点击右上角“运行”按钮,左边工程目录下出现demo.csv文件并且写入了数据。 image.png

3.4.1.2 读取CSV文件

实践:读取demo.csv文件中的内容,在控制台输出内容。 Step1:删除“main.py”中原有内容,输入下列代码。

import csv

if __name__ == '__main__':

    with open("demo.csv","r",encoding="utf-8") as file:
        reager = csv.reader(file)
        for row in reager:
            print(row)

Step2:点击右上角“运行”按钮,控制台打印出读取的内容。

image.png

3.4.2 json模块
3.4.2.1 写入JSON文件

实践:向data.json文件中写入内容。 Step1:删除“main.py”中原有内容,输入下列代码。

import json

if __name__ == '__main__':

    data = {'name': 'Jack','age': 30,'city': 'Nanjing'}

    with open("data.json","w",encoding="utf-8") as file:
        json.dump(data,file,indent=4)# indent用于格式化输出

Step2:点击右上角“运行”按钮,左边工程目录下出现data.json文件并且写入了内容。

image.png

3.4.2.2 读取JSON文件

实践:读取data.json文件中的内容,在控制台输出内容。 Step1:删除“main.py”中原有内容,输入下列代码。

import json

if __name__ == '__main__':

    with open("data.json","r",encoding="utf-8") as file:
        data = json.load(file)
        print(data)

Step2:点击右上角“运行”按钮,控制台打印出读取的内容。 image.png

3.5 文件读写综合案例

结合上面知识点,完成一个记事本应用的开发,实现一个简单的记事本功能: 1. 允许用户输入内容并保存至记事本 2. 读取记事本内容

3.5.1 模块代码实现

代码实现:

def read_file(filename):
 try:
    with open(filename, 'r', encoding='utf-8') as file:
        content = file.read()
        print("文件内容:")
        print(content)
 except FileNotFoundError:
        print("文件不存在!")

def write_file(filename):

    new_content = input("请输入要保存的内容:")
    with open(filename, 'a', encoding='utf-8') as file:
        file.write(new_content + '\n')
    print("内容已保存!")

def main():
    filename = 'notes.txt'  # 默认文件名 
    while True:
        print("\n记事本功能:")
        print("1. 添加日记")
        print("2. 查看日记")
        print("3. 退出记事本")

        choice = input("请选择操作(1/2/3):")

        if choice == '1':
            write_file(filename)
        elif choice == '2':
           read_file(filename)
        elif choice == '3':
            print("退出记事本。")
            break 
        else:
            print("无效的选择,请重新输入!")

if __name__ == "__main__":
    main()
3.5.2 运行结果验证

点击右上角“运行”按钮,输入数字1:添加日记,数字2:查看日记,数字3:退出记事本 image.png 输入数字1,按下enter键,输入内容:今天开始学习Python文件读写,按下enter键: image.png 输入数字2,按下enter键,控制台显示输入的内容: image.png 输入数字3,退出记事本: image.png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值