python3 文件操作练习 r+ w+ a+ 的理解
突然来一句:“慨然有经略四方之志”
文件操作三部曲:1.先用open打开 2.再写关闭 3.再回到中间写操作 为啥要刚打开就关闭 那是很容易望,所以先写上。。。
基本格式 f = open("file_name", "r", encoding="utf-8") 都得有才标准呐 !
f.read() 如果不写读几位,它会一直读下去 文件指针也就从头跟着下去,而且他是不会自己回来滴 所以要用f.seek() 把指针找回来并放到想去的位置。f.tell()是告诉指针当前的位置
f.readline()是读一行 f.readlines() 是把文件全部读出来做个列表,然后把每一行作为列表的一个元素 list = f.readlines() list[3] 就是第四行内容了 这种方法只适用于小文件,因为占内存啊
想要读一个文件 但是不读某一行 一种很low的写法是: for index, line in emunerate(f.readlines()) 然后在里头搞个判断让他在指定行不输出就欧克了 占内存是真!
一个逼格高点的,正常的写法是: for line in f 然后直接操作就行,不过得加个count来自己计数 但这样不占内存啊,就一行
“rb” 是以二进制读的方式打开 “wb"是以二进制写的方式打开 用于网络传输的 注意f.write("str".encode()) 写的时候要编码encod()
一下是一些操作练习,还是叫草稿把。。。。。。不过倒是把" r+" "w+" "a+" 搞明白了
#!usr/bin/env/ python
# -*- coding:utf-8 -*-
# Author:XiaoFeng
import time
import sys # r+ 读写 不重新创建 而是在源文件写
# 要注意写的时候,文件指针的位置,
# 不然可能覆盖原先部分内容
f1 = open("test_file", "r+", encoding="utf-8")
print(f1.tell())
f1.write("哇哈哈哈哈哈!")
print(f1.tell())
f1.seek(0)
print(f1.tell())
date = f1.read()
print(date)
f1.write("测试")
print(f1.tell())
f1.close() print("-" * 50) # w+ 写读 创建一个新的再写 就是在搞个这个名字的空文件,
# 源文件没了 所以一开始读也是空的
# 内容全部从头重新里面写,
f2 = open("test_file1", "w+", encoding="utf-8")
print(f2.tell())
date1 = f2.read()
print("----%s----" % date1)
f2.write("哦哦哦哇哈哈哈哈哈!")
print(f2.tell())
f2.seek(0)
print(f2.tell())
date2 = f2.read()
print("----%s----" % date2)
print(f2.tell())
f2.close() print("-" * 50) # a+ 追加读写 没有的话会新建一个文件
# 若有文件 则在源文件基础上 在末尾追加内容
# 欲使用seek改变指针位置从而改变写的位置是无效的
# 只能加在最末尾
f3 = open("test_file2", "a+", encoding="utf-8")
print(f3.tell())
date3 = f3.read()
print("----%s----" % date3)
f3.write("啊啊啊啊哦哦哦哇哈哈哈哈哈!")
print(f3.tell())
f3.seek(0)
print(f3.tell())
date4 = f3.read()
print("----%s----" % date4)
print(f3.tell())
f3.seek(5)
f3.write("测试测试")
f3.seek(0)
print(f3.read())
f3.close() # 截断 即保留一段 剩下的全删
# 注意这里seek改变指针位置也没作用 照样从头开始数
f4 = open("test_file3", "w+", encoding="utf-8")
print(f4.tell())
f4.write("")
f4.seek(0)
date = f4.read()
print(date)
f4.seek(2)
f4.truncate(5)
f4.seek(0)
date5 = f4.read()
print(date5)
f4.close() print("-" * 50) # 做一个进度条
for i in range(50):
sys.stdout.write("#") # sys.stdout.write() 标准输出内容 无空个回车
sys.stdout.flush() # f.flush() 刷新 立即存入硬盘
time.sleep(0.1) # sys.stdout.flush() 立即输出到屏幕 print(f3.name) # 打印名字 注意后面没括号
python3 文件操作练习 r+ w+ a+ 的理解的更多相关文章
- python从入门到大神---4、python3文件操作最最最最简单实例
python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...
- Python3 文件操作(十六)
一 文件操作 1.介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众 ...
- [Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等
1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...
- Python3文件操作1 --Python3
1.文件的两种类型 文本文件:由单一特定的编码字符组成(如:txt文件) 二进制文件:直接由比特0和比特1组成,文件内部数据组织格式与文件的用途有关(视频.图片) 2.文件主要操作概述 Python对 ...
- C语言中文件打开模式(r/w/a/r+/w+/a+/rb/wb/ab/rb+/wb+/ab+)浅析
C语言文件打开模式浅析 在C语言的文件操作语法中,打开文件文件有以下12种模式,如下图: 打开模式 只可以读 只可以写 读写兼备 文本模式 r w a r+ w+ a+ 二进制模式 rb wb ...
- python文件读写模式 --- r,w,a,r+,w+,a+,rb,wb
要了解文件读写模式,需要了解几种模式的区别,以及对应指针 r : 读取文件,若文件不存在则会报错 w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件 a : 写入文件,若文件不存在则会先创建再 ...
- python3文件操作
文件操作的过程 1)打开 2)操作 3)关闭 1.写(清空写入) # f = open(file='test', mode='w', encoding='utf-8') # 第一种情况 # f.wri ...
- Python2与python3 文件操作关于打开文件
#首先在python3中操作文件只有一种选择,那就是open() #而在python2中则有两种方式:file()与open() 两者都能够打开文件,对文件进行操作,也具有相似的用法和参数,但是,这两 ...
- python 基础 3.1 打开文件 a a+ r+ w+ 详解
一.python 访问文件 1.在python中要访问文件,首先要打开文件,也就是open ---open r: 只读 w: 只写 ,文件已存在则清空,不存在则创建 a:追加 ...
随机推荐
- 以太坊ERC20代币开发
以太坊ERC20代币开发首先需要对以太坊,代币,ERC20,智能合约等以太坊代币开发中的基本概念有了解.根据我们的示例代码就可以发行自己的以太坊代币. 什么是ERC20 可以把ERC20简单理解成以太 ...
- 对try-catch-finally异常处理的最新理解
try{ ...... }catch(......){ }finally{ ...... } 这个结构是用来处理Java所有可能出现的异常的,这个我很早其实就已经学过,不过最近看了个视频,感觉自己虽然 ...
- 分布式计算框架Gearman原理详解
什么是Gearman? Gearman提供了一个通用的应用程序框架,用于将工作转移到更适合于工作的其他机器或流程.它允许你并行工作,负载平衡处理,并在语言间调用函数.它可用于从高可用性网站到传输数据库 ...
- 通过VirtualBox安装Linux系统(CentOS7)
本文目的:创建虚拟系统.在windows系统中通过虚拟工具VirtualBox创建一个虚拟系统CentOS. 备注:(1)版本如下:VirtualBox-5.2.12-122591-Win 和Cent ...
- 自动化运维工具sshd,expect,pssh,rsync详解
ssh secure shell,安全的远程登录:openssh和dropbear都是它的开源实现,ssh协议有v1和v2俩个版本,现在使用的都是v2版,v1已经不安全了:ssh基于DH算法做密钥交换 ...
- java.lang.IllegalArgumentException: Request header is too large
tomcat运行项目时,有一个请求过去后,后台报这样的错java.lang.IllegalArgumentException: Request header is too large原因:请求头超过了 ...
- Containerd 简介
我们可以把 docker 抽象为下图所示的结构(此图来自互联网): 从图中可以看出,docker 对容器的管理和操作基本都是通过 containerd 完成的. 那么,containerd 是什么呢? ...
- 如何用VBS编写一个简单的恶搞脚本
windows系统的电脑, 首先右击桌面,选择新建-文本文档,在桌面上新建一个文本文档: 随后打开计算机或者是我的电脑,点击其中的组织(xp系统多为工具),选择下面的文件夹和搜索选项 ...
- Spring_JDBC
//User实体类 package com.tao.pojo; public class User { private int id; private String name; private Str ...
- BZOJ_3629_[JLOI2014]聪明的燕姿_dfs
BZOJ_3629_[JLOI2014]聪明的燕姿_dfs Description 阴天傍晚车窗外 未来有一个人在等待 向左向右向前看 爱要拐几个弯才来 我遇见谁会有怎样的对白 我等的人他在多远的未来 ...