突然来一句:“慨然有经略四方之志”

文件操作三部曲: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+ 的理解的更多相关文章

  1. python从入门到大神---4、python3文件操作最最最最简单实例

    python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...

  2. Python3 文件操作(十六)

    一 文件操作 1.介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众 ...

  3. [Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等

    1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...

  4. Python3文件操作1 --Python3

    1.文件的两种类型 文本文件:由单一特定的编码字符组成(如:txt文件) 二进制文件:直接由比特0和比特1组成,文件内部数据组织格式与文件的用途有关(视频.图片) 2.文件主要操作概述 Python对 ...

  5. C语言中文件打开模式(r/w/a/r+/w+/a+/rb/wb/ab/rb+/wb+/ab+)浅析

    C语言文件打开模式浅析 在C语言的文件操作语法中,打开文件文件有以下12种模式,如下图: 打开模式  只可以读   只可以写  读写兼备 文本模式 r w a r+ w+ a+ 二进制模式 rb wb ...

  6. python文件读写模式 --- r,w,a,r+,w+,a+,rb,wb

    要了解文件读写模式,需要了解几种模式的区别,以及对应指针 r : 读取文件,若文件不存在则会报错 w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件 a : 写入文件,若文件不存在则会先创建再 ...

  7. python3文件操作

    文件操作的过程 1)打开 2)操作 3)关闭 1.写(清空写入) # f = open(file='test', mode='w', encoding='utf-8') # 第一种情况 # f.wri ...

  8. Python2与python3 文件操作关于打开文件

    #首先在python3中操作文件只有一种选择,那就是open() #而在python2中则有两种方式:file()与open() 两者都能够打开文件,对文件进行操作,也具有相似的用法和参数,但是,这两 ...

  9. python 基础 3.1 打开文件 a a+ r+ w+ 详解

      一.python 访问文件   1.在python中要访问文件,首先要打开文件,也就是open ---open   r:  只读   w:  只写 ,文件已存在则清空,不存在则创建   a:追加 ...

随机推荐

  1. ActiveMQ的消息持久化机制

    为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制. ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,无论使用哪种持久化方式 ...

  2. WPF 定义Command

    直接上代码: public class LoginDelegateCommand : ICommand { private Action _execute; private Predicate< ...

  3. backbone的一些认识

    body,td { font-family: 微软雅黑; font-size: 10pt } 官网:http://backbonejs.org/ 作者:Jeremy Ashkenas 杰里米·阿什肯纳 ...

  4. 基于 WebRTC 创建一款多人联机游戏

    本项目的目标旨在尽可能少用服务器资源的前提下研发一款在线多人游戏,同时期望在一个用户的浏览器上运行游戏,同时让另一个玩家来连接.此外还希望程序尽可能简单以便于在博客中分析. 运用的技术 在我刚接触 P ...

  5. 系列博文-Three.js入门指南(张雯莉)-照相机

    照相机就是这样一个抽象,它定义了三维空间到二维屏幕的投影方式,用“照相机”这样一个类比,可以使我们直观地理解这一投影方式.而针对投影方式的不同,照相机又分为正交投影照相机与透视投影照相机.我们需要为自 ...

  6. 常用JS对象的方法总结

    String 方法 描述 charAt() 返回在指定位置的字符. charCodeAt() 返回在指定的位置的字符的 Unicode 编码. concat() 连接字符串. indexOf() 检索 ...

  7. ImageMagick简介、GraphicsMagick、命令行使用示例

    http://elf8848.iteye.com/blog/382528 ImageMagick资料 ------------------------------------------------- ...

  8. Python中从SQL型数据库读写dataframe型数据

    Python的pandas包对表格化的数据处理能力很强,而SQL数据库的数据就是以表格的形式储存,因此经常将sql数据库里的数据直接读取为dataframe,分析操作以后再将dataframe存到sq ...

  9. 【递推】Bzoj3612[Heoi2014]平衡

    Description 下课了,露露.花花和萱萱在课桌上用正三棱柱教具和尺子摆起了一个“跷跷板”.      这个“跷跷板”的结构是这样的:底部是一个侧面平行于地平面的正三棱柱教具, 上面 摆着一个尺 ...

  10. Linux下全局安装composer

    下载composer curl -sS https://getcomposer.org/installer | php 将composer.phar文件移动到bin目录以便全局使用composer命令 ...