python学习7.1文件

2023-11-11

一、open() 函数

1、第一个参数:文件名

2、打开方式:

(1)' r ':以只读模式打开文件(readlines() 以列表形式输出)

输入:

file = open('a.txt', 'r')
print(file.readlines())
file.close()

输出:

['汪湾\n']

(2)' w ':以只写模式打开文件,若不存在则创建

输入:(此时 b.txt 不存在,这样操作是创建 b.txt 然后录入数据 “hello world” )

file = open('b.text', 'w')
file.write("hello world!")
file.close()

若文件存在且已有内容,则进行覆盖

(3)' a ':追加模式,可以对文件已有内容后面进行追加

输入:

file = open('b.text', 'a')
file.write("hello world!")
file.close()

输出:

hello world!hello world!hello world!

(4)' rb ' 和 ' wb ' :以二进制文件读写,所谓二进制文件,就是以字节进行存储,,eg:mp3音频文件,jpg和png图片,doc文档等等

输入:

file = open('13.png', 'rb')
file1 = open('copy13.png', 'wb')
file1.write(file.read())
file1.close()
file.close()

输出:

 先以只读方式打开二进制文件 13.png ,然后以只写方式打开copy13.png,若不存在,则创建一个新的 copy13.png ,接着给 copy13.png 写入从 13.png 读取的数据,最后关闭文件;

(5)'a+' 以读写方式打开文件

二、文件对象的常用方法

1、read(size) 若省略 size ,则默认读到末尾

file = open('a.txt', 'r')
print(file.read(1))
file.close()

无论文件内容是文字还是字符,均输出第一个

2、readline() 只读取文件中第一行的内容

3、readlines() 把每一行作为一个独立对象,然后放到列表中

输入:

file = open('a.txt', 'r')
# print(file.read(1))
print(file.readlines())
file.close()
py
y
t
hon

输出:

['py\n', 'y\n', 't\n', 'hon\n']

4、write() 写入一个字符串

5、writelines() 写入一个列表

输入:可以加入 ' \n ' 来换行

file = open('a.txt', 'a')
zwj = ['dog\n', '250\n']
file.writelines(zwj)
file.close()

输出:

py
y
t
hon
dog
250

6、seek(num) 定位文件指针到第 num 之后(文字每个两字节,字符每个一字节,换行占两个字符)

7、tell() 返回文件指针的位置

8、flush() 保存

9、close() 关闭

三、with 语句,with 语句完结后,自动执行释放内存的操作,即不需要 close()

with open('a.txt', 'r') as file:
    print(file.read())

补充:

(1)r+w+ 都是Python文件操作模式中的标识符,它们都允许读取和写入文件。但它们之间有一些区别。

  • r+:打开文件用于读写,文件指针位于文件开头,如果文件不存在会抛出异常。

  • w+:打开文件用于读写,如果文件存在则截断文件,如果文件不存在则创建文件。文件指针位于文件开头。

总的来说,r+模式打开一个已经存在的文件,w+模式创建一个新文件,如果文件已经存在则截断它。在使用w+模式时,一定要小心,因为如果打开的是一个已经存在的文件,它的内容将被清空。

在使用r+w+模式时,需要注意的是,每次写入数据后,必须将文件指针移动到正确的位置。如果不移动指针,则新的写入数据将覆盖旧的数据,而不是追加到文件的末尾

(2)如果要将文件指针移动到文件的开头,可以使用seek(0, 0);如果要将文件指针移动到文件的末尾,可以使用seek(0, 2)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python学习7.1文件 的相关文章

随机推荐

  • 插值1算法

    一 基本概念 插值是指通过对数据进行线性 非线性或其他类型的逼近 将一组离散数据映射到连续的函数值 在数学中 插值通常用于将数据点连接起来 以形成连续的函数图像 特别是在数值计算和图像处理中 插值可以用于在空间中预测对象的位置 速度和加速度
  • Unity&Shader案例篇—绘制雨滴

    一 前言 转载请注明出处凯尔八阿哥专栏 惯例先上效果图 本文不只是简单的绘制雨滴 同时处理了摄像机不同朝向看到的雨滴下落的方向也不一样 二 方法 1 绘制雨线 绘制雨使用的是C 脚本绘制的 脚本为 using UnityEngine usi
  • 测试之自动化测试

    详细Python教程见 http www liaoxuefeng com wiki 0014316089557264a6b348958f449949df42a6d3a2e542c000 0014316090478912dab2a3a9e8f
  • 【金九银十】软件测试中的高频面试题梳理(内附答案)

    写数据库语句 一个老师表 一个学生表 1 查李老师班的小明 2 并将小明的年纪改成26 select t1 from 学生表 t1 jion 老师表 t2 on t1 班级 t2 班级 where t1 姓名 小明 and t2 姓名 李老
  • vue阻止弹窗_vue 弹窗禁止底层滚动

    原因 底层视图高度超出百分百 加入弹窗后再苹果浏览器隐藏上下栏的情况下遮罩层没有完全遮住底层 处理 打开弹窗后禁止底层滚动调用stop事件 关闭则开启底层滚动调用move事件 let mo function e e preventDefau
  • 实时流协议(RTSP) 来自 维基百科

    https zh wikipedia org wiki E5 8D B3 E6 99 82 E4 B8 B2 E6 B5 81 E5 8D 94 E5 AE 9A 目录 协议指令 OPTIONS 请求 DESCRIBE 请求 SETUP 请
  • stat()/lstat()的使用

    stat 函数和lstat 函数都是用于获取文件或目录的信息的函数 它们可以返回包含文件或目录的各种属性的结构体 这里是关于这两个函数的使用方法的简要说明 stat 函数 include
  • Boostrap对HTML的表格的设计和优化

    目录 01 Bootstrap的默认表格风格 02 没有边线 边界的表格 03 行与行的背景颜色交替变换 条纹样式 04 给表格加上边框效果 05 鼠标移到行上时该行的颜色加深 06 把表格的padding值缩减一半 使表格看起来更紧凑 0
  • 评分模型应用案例_FLUENT太阳辐射模型应用简单案例

    正文共 897字 11图 预计阅读时间 3分钟 1 前言 FLUENT自带了一个太阳辐射模型 solar load model 可以用来计算太阳光线进入计算域带来的辐照 其所谓光线追踪法 ray tracing approach 可以高效地
  • springBoot 整合shiro

    1 springBoot 整合思路 2 环境搭建 2 1创建springBoot项目并导入依赖 a 基本依赖 shiro spring boot starter spring web lombok b shiro依赖
  • 网络编程问题

    数据发送 假设应用程序要发送40KB数据 但是OS的TCP发送缓冲区只有25KB剩余空间 那么剩下的15KB数据怎么办 如果等待OS缓冲区可用 会阻塞当前线程 因为不知道对方什么时候收到并读取数据 因此网络库应该把这个15KB数据缓存起来
  • The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar

    今天用eclipse在maven项目里测试jsp页面时报了如下错误 The absolute uri http java sun com jsp jstl core cannot be resolved in either web xml
  • JUC学习笔记及拓展

    本文为自己整理的学习笔记及学习心得 大纲取自尚硅谷的JUC视频 感兴趣的小伙伴可以去B站自学 JUC学习笔记及拓展 Java JUC 1 Java JUC简介 2 volatile 关键字 内存可见性 2 1 内存可见性 2 2 volat
  • 在linux系统中发布springboot项目

    第一种方法 将项目打成jar包进行发布 第一步 在pom文件中的packing是jar的情况下
  • 汇报措辞:你懂得怎样向领导汇报吗(审阅、审批、批阅、批示、查阅)?

    很多程序员总以为自己技术很牛自倨 不太重视与领导沟通 也不太注重汇报的方式 给领导汇报总不能让领导满意 特别是做到项目经理后 可能会感觉到汇报很难弄 总也说不到点子上 不知道汇报怎样措辞写才能让领导看了满意 其实汇报也是一门技术 需要学习才
  • 在VS中如保快速查看DLL或exe的已导出的函数

    我们知道dumpbin 可以查看dll 或 exe 的导出函数接口 具体命令格式如下 Win r 输入CMD 调出 cmd 指令窗口 输入 C Program Files x86 Microsoft Visual Studio 14 0 V
  • 【框架篇】Spring Boot 日志

    Spring Boot 日志 一 日志用途 尽管一个项目在没有日志记录的情况下可能能够正常运行 但是日志记录对于我们来说却是至关重要的 它存在以下功能 1 故障排查和调试 当项目出现异常或者故障时 日志记录可以快速帮助我们定位到异常的部分以
  • AcWing 1223. 最大比例 指数的最大公约数

    AcWing 1223 最大比例 X星球的某个大奖赛设了 M 级奖励 每个级别的奖金是一个正整数 并且 相邻的两个级别间的比例是个固定值 也就是说 所有级别的奖金数构成了一个等比数列 比如 16 24 36 54 其等比值为 3 2 现在
  • RuntimeError: CUDA out of memory. Tried to allocate 14.00 MiB (GPU 0; 6.00 G)的解决【实测成功】

    仅作为记录 大佬请跳过 仅需减小batchsize 展示 即可运行 注 博主的这个程序减小batchsize就行了 可能不同的博友们的程序不一样 也有的大佬博主使用不计算梯度或释放内存的方式 不计算梯度 传送门 with torch no
  • python学习7.1文件

    一 open 函数 1 第一个参数 文件名 2 打开方式 1 r 以只读模式打开文件 readlines 以列表形式输出 输入 file open a txt r print file readlines file close 输出 汪湾