博客
关于我
读写文件 及 输入和输出 知识详解
阅读量:556 次
发布时间:2019-03-09

本文共 2028 字,大约阅读时间需要 6 分钟。

读写文件与输入输出操作详解

基本概念与工具

在Python中,读写文件的操作是程序开发中常见但又不够直观的环节。掌握这一技能对于数据处理、软件开发等工作都是必不可少的。本文将详细介绍Python文件操作的核心工具和相关命令。

文件操作的工具说明

文件操作的关键在于了解open()函数的用法和文件模式选择。大多数情况下,open()函数的调用方式如下:

open(filename, mode='r', encoding='utf-8')

其中:

  • mode参数指定文件操作方式,默认为读取模式'r'
  • encoding参数指定字符编码格式,默认为None,建议使用'utf-8''gbk'
  • 其他如bufferingnewline等参数可以根据具体需求进行调整。

文件操作模式的具体含义:

  • r:只读模式
  • w:写入模式,高位文件会被截断
  • x:创建新文件并写入,如果文件不存在则创建
  • a:追加模式,内容加到文件末尾
  • rb:二进制读取模式
  • wb:二进制写入模式
  • +:读写混合模式

文件操作示例

例1:读写文档

with open("review", mode="rt", encoding="utf-8") as file_obj:    data = file_obj.read()    print("读取内容:", data)    with open("tushuguan.txt", mode="wt", encoding="utf-8") as file_obj:    file_obj.write(data)    print("写入完成。")

运行代码后,会新建一个tushuguan.txt文件,内容与review文件相同。

例2:读写图片文件

with open("python.jpg", mode="rb") as file_img:    data = file_img.read()    with open("python_cp.jpg", mode="wb") as file_img:    file_img.write(data)    print("图片复制完成。")

运行后,python_cp.jpg会是python.jpg的副本。

复杂场景处理示例

除了简单的读写操作,文件操作还有更复杂的需求,如自动追加文件内容或指定读取行数:

自动追加内容

with open("huyi.txt", mode="a", encoding="utf-8") as file_obj:    file_obj.write("我学习云计算网络安全知识。\n")    file_obj.writelines(["现在我正在学习Python语言。\n","已经学习了HCPA和RHCSA课程。"])    print("已追加完成。")

读取部分内容

with open("review", encoding="utf-8") as file_obj:    data = file_obj.readlines(50)    print("读取的内容为:", data[:50])

输入输出操作

输入操作非常简单,直接使用input()函数即可:

获取输入并输出

data = input("请输入内容:")print(f"输入内容:{data}, 类型:{type(data)}")

输出部分可以通过格式化字符串来美化内容排版:

格式化输出示例

name = "小明"age = 20print(f"My name is {name}, My age is {age}")print(f"My name is {name}, My age is {age:.2f}")

表格输出示例

文字内容可以通过表格形式美化输出:

print("{0:^5}{1:^15}{2:^15}".format("姓名", "联系方式", "学校"))print("{0:*<5}{1:*<15}{2:*<15}".format("张三", "11111111111", "西安石油大学"))print("{0:>&<5}{1:>&<15}{2:>&<15}".format("李四", "22222222222", "西安交通大学"))

这些命令可以帮助将数据以美观的形式显示出来,适合用于展示结构化信息。

注意事项

  • 文件路径处理:确保文件路径正确,避免跨平台问题。推荐使用相对路径。
  • 错误处理:在处理文件时,务必添加异常捕捉,避免程序崩溃。
  • 文件锁机制:多线程环境下,文件读写可能存在竞态条件,可以使用机制解决。
  • 二进制文件处理:非文本文件需使用二进制模式'rb''wb'
  • 通过这些知识和示例,可以有效地完成文件操作和简单的数据处理任务。如果需要更高级别的操作,可以进一步学习文件对象的高级用法或使用第三方库如pandas进行大数据处理。

    转载地址:http://ockpz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C 编码规范
    查看>>
    Objective-C——判断对象等同性
    查看>>
    Objective-C之成魔之路【7-类、对象和方法】
    查看>>
    Objective-C享元模式(Flyweight)
    查看>>
    Objective-C以递归的方式实现二叉搜索树算法(附完整源码)
    查看>>
    Objective-C内存管理教程和原理剖析(三)
    查看>>
    Objective-C实现 Greedy Best First Search最佳优先搜索算法(附完整源码)
    查看>>
    Objective-C实现 jugglerSequence杂耍者序列算法 (附完整源码)
    查看>>
    Objective-C实现1000 位斐波那契数算法(附完整源码)
    查看>>
    Objective-C实现2 个数字之间的算术几何平均值算法(附完整源码)
    查看>>
    Objective-C实现2d 表面渲染 3d 点算法(附完整源码)
    查看>>
    Objective-C实现2D变换算法(附完整源码)
    查看>>
    Objective-C实现3n+1猜想(附完整源码)
    查看>>
    Objective-C实现3n+1猜想(附完整源码)
    查看>>
    Objective-C实现9x9乘法表算法(附完整源码)
    查看>>
    Objective-C实现9×9二维数组数独算法(附完整源码)
    查看>>
    Objective-C实现A*(A-Star)算法(附完整源码)
    查看>>
    Objective-C实现A-Star算法(附完整源码)
    查看>>
    Objective-C实现abbreviation缩写算法(附完整源码)
    查看>>
    Objective-C实现ABC人工蜂群算法(附完整源码)
    查看>>