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:追加 ...
随机推荐
- PCA的数学原理(转)
PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降 ...
- git回退到某个历史版本
1. 使用git log命令查看所有的历史版本,获取某个历史版本的id,假设查到历史版本的id是139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96. 2. git res ...
- bzoj 1426 收集邮票
f[i]:当前已拥有i种邮票,还需要买的邮票数的期望值. g[i]:当前已拥有i种邮票,还需要的钱的期望值. 每张邮票初始都是1元钱,每买一张邮票,还没购买的邮票每张都涨价1元. f[i]=1+(n ...
- MYSQL一键安装
#!/bin/bash #baishuchao qq:995345781 ############################################################### ...
- 如何改变XCode的默认设置
改变bundle ID 进入 /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Appl ...
- Healwire Online Pharmacy 3.0 Cross Site Request Forgery / Cross Site Scripting
Healwire Online Pharmacy version 3.0 suffers from cross site request forgery and cross site scriptin ...
- Ubuntu 17.10 UTC
UTC即Universal Time Coordinated,协调世界时(世界统一时间)GMT 即Greenwich Mean Time,格林尼治平时Windows 与 Mac/Linux 看待系统硬 ...
- Sublime Text3插件安装(经典)
今天我去听数学建模的培训,感觉很有意思,可是我没有报名(QAQ),没有参加培训的报名,不过幸好没有开始选拔比赛 所以我决定学习数学建模方面的知识,要好好学习了! 希望我未来的学弟学妹们!(不要像我这样 ...
- Postman----presets与环境变量的联合使用
一.环境 在开发不同阶段,可能存在不同的环境(对我碰到的就是服务器地址/api版本/header信息等不一样),比如 debug环境和release环境,每次切换环境测试的时候都得重新配置url信息, ...
- OKHttp源码学习--HttpURLConnection HttpClient OKHttp Get and post Demo用法对比
1.HttpURLConnection public class HttpURLConnectionGetAndPost { private String urlAddress = "xxx ...