综述:一定要理解光标移动的规则

---------------------------------------------------------------------------第一部分基本操作--------------------------------------------------------------

1.对象可以调用方法,文件是对象,所以也可调用对应的方法。操作文件对象,先建立文件对像。

2.文件打开方法或者说对象创建方法

方法一:函数open('filename'),唯一一个强制参数,文件名,其他参数:打开模式,编码用的多一些,需要close()函数关闭。返回文件对象(句柄),在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

方法二:with open() ----自动关闭,报错也会自动关闭,不需要 close() 函数关闭

3.打开模式决定可以进行哪些操作,也就是文件对象模式。

文件打开基本模式:(1)只读r;不能写  (2)只写w;不能读  (3)追加a;可读,无则新增,有则追加  (4)组合模式;读写

第一部分:文件的读'r':相关方法 read();readline();readlines()

read(),按照字符取数据,注意光标位置,可指定读取的字符长度:例如read(6)读取六个字符长度

readline(),取一行的内容,包括,换行符也会打印,也有参数限制可打印的长度;连续print打印,光标移动打印行的末尾,打印的不重复

readlines(),取全部的内容,把每行作为列表的一个元素,以列表的形式打印,可for循环遍历

第二部分:文件的写'w':相关方法write(),文件写入内容 ,注意,写的模式慎用,打开的时候已经清空

第三部分:文件的追加‘a’

第四部分:'r+' -----读写,打开一个文件用于读写。文件指针将会放在文件的开头。

‘w+’---写读,该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件

‘a+’---读写,如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

---------------------------------------------------------第三部分-------------------------------------------------------------------------------

一,关于换行符的打印:

二,光标移动以及位置

seek() tell()

(1)seek()移动读取文件时光标的位置;

格式:file.seek(offset,whence)也即是seek([文件偏移量][文件指针位置])

说明:参数offset表示要偏移的量,0即是不偏移,正数即向右偏移,负数即向左偏移

参数whence表示参照位置,其中whence取值0 代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。whence值为空没设置时会默认为0

(2)tell()可打印当前光标的位置

展示:

  1. with open('file1.txt') as con:
  2. #print(con.read())
  3. mon=con.read(4)
  4. print(mon)
  5. print(con.tell()) #文件对象调
  6. con.seek(1,0) #从首项开始一个字符的位置
  7. print(con.tell())
  8.  
  9. ----------结果-----
  10. #no p
  11. #
  12. #

(3)对于同一个文件对象连续的操作要注意光标的位置是连续变动的

  1. #以下写入文件时
  2. with open('runoob.txt','w') as fib:
  3. print(fib.tell()) #源文件已经被格式化,光标在第0位
  4. fib.write('')
  5. print(fib.tell()) #写入之后在第5位,在下一位追加
  6. fib.write('')
  7.  
  8. #1111122222 文件结果

三,缓存区刷新

flash()刷新缓存区的数据到磁盘,缓冲区被清空,借助进度条打印的例子很容易理解

  1. #实现进度条
  2. #原理:文件没有关闭之前,数据都是在缓存区
  3. import sys,time
  4.  
  5. fo = open("runoob.txt", "wb")
  6. for i in range(30):
  7. sys.stdout.write('*') #还在内存缓冲区
  8. sys.stdout.flush() # 刷新缓冲区(可将此行注释观察异同!)
  9. time.sleep(0.5)
  10. fo.close()

比如,一般这个是防止短电未保存。

python文件内容处理(一)的更多相关文章

  1. Linux下Python 文件内容替换脚本

    Linux下Python 文件替换脚本 import sys,os if len(sys.argv)<=4: old_text,new_text = sys.argv[1],sys.argv[2 ...

  2. Python文件内容修改

    ''' 吃的文件内容: 过油肉菜 尖椒菜 娃娃菜 ''' import os with open("吃的", mode="r", encoding=" ...

  3. python 文件内容修改替换操作

    当我们读取文件中内容后,如果想要修改文件中的某一行或者某一个位置的内容,在python中是没有办法直接实现的,如果想要实现这样的操作只能先把文件所有的内容全部读取出来,然后进行匹配修改后写入到新的文件 ...

  4. Python 文件内容读取

    # 读取数据的函数 def readData(filename): with open(filename, 'r') as f: data = f.read().lower() data = list ...

  5. python字符串内容替换的方法(转载)

    python字符串内容替换的方法 时间:2016-03-10 06:30:46来源:网络 导读:python字符串内容替换的方法,包括单个字符替换,使用re正则匹配进行字符串模式查找与替换的方法.   ...

  6. Python跳过第一行读取文件内容

    Python编程时,经常需要跳过第一行读取文件内容.比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作.相应的Python代码如下: inpu ...

  7. Python 输出文件内容到网络端口

    Python 输出文件内容到网络端口 $ cat mySocketTest.py import sys import time import socket if __name__ == "_ ...

  8. Python文件操作---合并文本文件内容

    目前一个用的比较多的功能:将多个小文件的内容合并在一个统一的文件中,对原始文件重命名标记其已被处理过.之前使用其他脚本写的,尝试用python写了一下,顺便熟悉一下python的文件处理命令. 原始文 ...

  9. 深入学习Python解析并解密PDF文件内容的方法

    前面学习了解析PDF文档,并写入文档的知识,那篇文章的名字为深入学习Python解析并读取PDF文件内容的方法. 链接如下:https://www.cnblogs.com/wj-1314/p/9429 ...

随机推荐

  1. 机器学习之路--seaborn

    seaborn是基于plt的封装好的库.有很强的作图功能. 1.布局风格设置(图形的style)and 细节设置 用matplotlib作图: import numpy as np import ma ...

  2. Linux中du、df显示不一致问题

    Linux中du.df显示不一致问题 最近在做关于Q博士的项目的时候,用到了docker进行部署,对于后端服务可能会经常变动,于是将docker容器的jar包与宿主机目录下的jar包进行绑定,之后每次 ...

  3. iOS多线程编程原理及实践

    摘要:iOS开发中,开发者不仅要做好iOS的内存管理,而且如果你的iOS涉及多线程,那你也必须了解iOS编程中对多线程的限制,iOS主线程的堆栈大小为1M,其它线程均为512KB,且这个限制开发者是无 ...

  4. Java Data类

    Date类的概述 java.util,Date 表示日期和时间的类类 Date 表示特定的瞬间,精确到千分之一秒(毫秒) 获取时间原点到当前系统时间经历了多少秒 // 时间原点:1970 年 01 月 ...

  5. Tarjan求割点和桥

    by szTom 前置知识 邻接表存储及遍历图 tarjan求强连通分量 割点 割点的定义 在一个无向图中,如果有一个顶点集合,删除这个顶点集合以及这个集合中所有顶点相关联的边以后,图的连通分量增多, ...

  6. 简单 hash 入门题目

    题目描述 NOIP 复赛之前,HSD 桑进行了一项研究,发现人某条染色体上的一段 DNA 序列中连续的 kkk 个碱基组成的碱基序列与做题的 AC 率有关!于是他想研究一下这种关系.现在给出一段 DN ...

  7. Iaas/paas/saas 三种模式分别都是做什么?

    任何一个在互联网上提供其服务的公司都可以叫做云计算公司.其实云计算分几层的,分别是Infrastructure(基础设施)-as-a- Service,Platform(平台)-as-a-Servic ...

  8. python中常⽤的excel模块库

    python中常用的excel模块库&安装方法 openpyxl openpyxl是⼀个Python库,用于读取/写⼊Excel 2010 xlsx / xlsm / xltx / xltm⽂ ...

  9. powershell Google Firefox

    $firefox = @{ DisplayName = "Mozilla Firefox"; filename = "Firefox Setup 68.0b7.msi&q ...

  10. python 自定义expection

    class PricePolicyInvalid(Exception): def __init__(self, msg): self.msg = msg