当前位置: 首页 > news >正文

【python笔记】第十四节 文件操作

💕💕💕 博主昵称:摆烂阳💕💕💕

🥰博主主页跳转链接
👩‍💻博主研究方向:web渗透测试 、python编程
📃 博主寄语:希望本篇文章能给大家带来帮助,有不足的地方,希望友友们给予指导

文件操作

  • 一、打开
  • 二、关闭
  • 三、读取
  • 四、写入
  • 五、二进制文件
  • 本章小结

操作文件的步骤:

1. 打开文件
2. 对文件进行(读,写),保存
3. 关闭文件

一、打开

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

file: 指要打开文件的名字 (准确说是路径,可写绝对路径,可写相对路径)

原始字符串:

让字符串不会被转义 ,字符串前面加个r print(r"\n") # 转义符不会再转义了,纯字符

建议:字符串里面存储的是 路径,正则表达式 通通使用原始字符串

路径
1、绝对路径

不易出错,唯一性

2、相对路径

… 表示上一级
/ 下一级

pycharm绝对路径快捷键:ctrl + shift + c

二、关闭

fileName = r"demo.txt"
demo = open(fileName)
content = demo.read()  # 读取文件中的内容,它会将内容全部保存为一个字符串返回
demo.close()  # 关闭文件
print(demo.read())

python提供了一个语法,可以自动帮忙关闭,再也不用手动了

with open …as 语句

with 会自动将文件关闭 自动执行f.close()

with open(fileName) as f:
content = f.read()
print(content)

三、读取

read() :读取全部内容
readline() : 读取一行内容
readlines() :读取每行行内容,放进列表

读取文件分为两种
1.纯文本文件(使用utf-8等编码编写的文本文件)
常见中文编码:utf-8,gbk,gb2312
2.二进制文件(图片、视频)

# 按行读取
with open(fileName,encoding="utf-8") as f:
    print(f.readline(),end="")
    print(f.readline(),end="")
    print(f.readline(),end="")
    print(f.readline())

四、写入

r:只读 (不传,则是只读)

w:可写 ,表示覆盖,如果文件不存在会创建文件

a:可写 ,表示追加,如果文件不存在会创建文件

fileName = r"demo4.txt"

# with 会自动将文件关闭   f.close()
# 指定w模式,表示可写
with open(fileName, "w", encoding="utf-8") as f:
    f.write("aa\n")  # 括号内需要传递一个字符串
    f.write("aa\n")  # 括号内需要传递一个字符串
    f.write("aa\n")  # 括号内需要传递一个字符串
    f.write("aa")  # 括号内需要传递一个字符串

# a 表示追加,不会清空以前的内容
with open(fileName, "a", encoding="utf-8") as f:
    f.write("aa\n")  # 括号内需要传递一个字符串
    f.write("aa\n")  # 括号内需要传递一个字符串
    f.write("aa\n")  # 括号内需要传递一个字符串
    f.write("aa\n")  # 括号内需要传递一个字符串
    
    

+:为操作符增加功能
r+:可读也可写
w+:可写也可读
a+:可写也可读

五、二进制文件

音乐,图片 二进制文件


读取模式参数:
    t 读取文本文件(默认方式)
    b 读取二进制文件fileName = r"周杰伦 - 晴天.mp3"


with open(fileName,"rb") as f:
    content = f.read()
    new_path = "qq.mp3"
    with open(new_path,"ab") as f2:
        # 将读取的数据写入到新的对象中
        f2.write(content)
        
        
 

本章小结

本文是本人以前笔记,博主主页跳转链接
如果有哪里不对的话欢迎各位大佬指出问题,本人也是初学python,希望可以和各位朋友一起学习进步。

点击跳转到博主python专栏:
如果有喜欢web安全的朋友,请在web渗透专栏中进行查看
点击跳转到博主web渗透专栏

相关文章:

  • 【Verilog基础】【计算机体系结构】DMA数据搬移产生的cache一致性
  • 【JavaWeb】 Mybatis-02-Mybatis的快速入门
  • 微服务项目:尚融宝(20)(后端搭建:OSS文件上传整合)
  • 【AI】PyTorch入门(二):训练与预测
  • 【网络服务数据库教程】04 Linux文件服务器 - Samba
  • 让我们谈谈密码哈希
  • 写完Numpy100道基础练习题后的错误总结和语法总结
  • 《算法导论》12.3 插入和删除
  • C++与C的区别终于说清楚了!
  • 前端面试知识查漏补缺
  • WEIXIN day_02(8.17) 小程序的组件库
  • 社区交友源码 支持聊天私聊-礼物系统-直播系统-缘分匹配+搭建教程
  • Reactor 之 手把手教你 Spring Boot 整合 Reactor
  • 【42STL-函数对象使用详情】
  • LVS-Nat模式实战
  • ES6指北【2】—— 箭头函数
  • “大数据应用场景”之隔壁老王(连载四)
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 【知识碎片】第三方登录弹窗效果
  • Computed property XXX was assigned to but it has no setter
  • Consul Config 使用Git做版本控制的实现
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • laravel5.5 视图共享数据
  • Promise面试题,控制异步流程
  • Python 基础起步 (十) 什么叫函数?
  • Vue.js-Day01
  • Webpack 4 学习01(基础配置)
  • Zsh 开发指南(第十四篇 文件读写)
  • 关于字符编码你应该知道的事情
  • 力扣(LeetCode)56
  • 设计模式 开闭原则
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 探索 JS 中的模块化
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微服务核心架构梳理
  • 用 Swift 编写面向协议的视图
  • 中文输入法与React文本输入框的问题与解决方案
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​secrets --- 生成管理密码的安全随机数​
  • %@ page import=%的用法
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (175)FPGA门控时钟技术
  • (20050108)又读《平凡的世界》
  • (zt)最盛行的警世狂言(爆笑)
  • (多级缓存)缓存同步
  • (翻译)terry crowley: 写给程序员
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)Mocha源码阅读: 项目结构及命令行启动