python文件内容处理(一)
综述:一定要理解光标移动的规则
---------------------------------------------------------------------------第一部分基本操作--------------------------------------------------------------
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()可打印当前光标的位置
展示:
with open('file1.txt') as con:
#print(con.read())
mon=con.read(4)
print(mon)
print(con.tell()) #文件对象调
con.seek(1,0) #从首项开始一个字符的位置
print(con.tell()) ----------结果-----
#no p
#
#
(3)对于同一个文件对象连续的操作要注意光标的位置是连续变动的
#以下写入文件时
with open('runoob.txt','w') as fib:
print(fib.tell()) #源文件已经被格式化,光标在第0位
fib.write('')
print(fib.tell()) #写入之后在第5位,在下一位追加
fib.write('') #1111122222 文件结果
三,缓存区刷新
flash()刷新缓存区的数据到磁盘,缓冲区被清空,借助进度条打印的例子很容易理解
#实现进度条
#原理:文件没有关闭之前,数据都是在缓存区
import sys,time fo = open("runoob.txt", "wb")
for i in range(30):
sys.stdout.write('*') #还在内存缓冲区
sys.stdout.flush() # 刷新缓冲区(可将此行注释观察异同!)
time.sleep(0.5)
fo.close()
比如,一般这个是防止短电未保存。
python文件内容处理(一)的更多相关文章
- Linux下Python 文件内容替换脚本
Linux下Python 文件替换脚本 import sys,os if len(sys.argv)<=4: old_text,new_text = sys.argv[1],sys.argv[2 ...
- Python文件内容修改
''' 吃的文件内容: 过油肉菜 尖椒菜 娃娃菜 ''' import os with open("吃的", mode="r", encoding=" ...
- python 文件内容修改替换操作
当我们读取文件中内容后,如果想要修改文件中的某一行或者某一个位置的内容,在python中是没有办法直接实现的,如果想要实现这样的操作只能先把文件所有的内容全部读取出来,然后进行匹配修改后写入到新的文件 ...
- Python 文件内容读取
# 读取数据的函数 def readData(filename): with open(filename, 'r') as f: data = f.read().lower() data = list ...
- python字符串内容替换的方法(转载)
python字符串内容替换的方法 时间:2016-03-10 06:30:46来源:网络 导读:python字符串内容替换的方法,包括单个字符替换,使用re正则匹配进行字符串模式查找与替换的方法. ...
- Python跳过第一行读取文件内容
Python编程时,经常需要跳过第一行读取文件内容.比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作.相应的Python代码如下: inpu ...
- Python 输出文件内容到网络端口
Python 输出文件内容到网络端口 $ cat mySocketTest.py import sys import time import socket if __name__ == "_ ...
- Python文件操作---合并文本文件内容
目前一个用的比较多的功能:将多个小文件的内容合并在一个统一的文件中,对原始文件重命名标记其已被处理过.之前使用其他脚本写的,尝试用python写了一下,顺便熟悉一下python的文件处理命令. 原始文 ...
- 深入学习Python解析并解密PDF文件内容的方法
前面学习了解析PDF文档,并写入文档的知识,那篇文章的名字为深入学习Python解析并读取PDF文件内容的方法. 链接如下:https://www.cnblogs.com/wj-1314/p/9429 ...
随机推荐
- 「USACO15FEB」Censoring (Silver) 审查(银) 解题报告
题面 就是让你--在字符串A中,如果字符串B是A的子串,那么就删除在A中第一个出现的B,然后拼接在一起,一直重复上述步骤直到B不再是A的子串 |A|\(\le 10^6\) 思路: KMP+栈 1.由 ...
- 数据库中间件分片算法之enum
前言 最近挺焦虑的,不知道未来该做什么,方向又是什么.只能用别慌,月亮也正在大海的某处迷茫.来安慰下自己.不过学习的初心咱们还是不要忘记.今天我们学习的是enum分片算法. 1.hash分区算法 2. ...
- python I/O编程
1.文件读写 使用open打开文件,f=open('/user/test.txt','r'),r表示可读 如果文件不存在,则抛出IOError 文件打开,则用read()方法进行读取 最后关闭用clo ...
- 在EasyUI项目中使用FileBox控件实现文件上传处理
我在较早之前的随笔<基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用>Web框架介绍中介绍了基于Uploadify的文件上传操作,免费版本用的是J ...
- C语言关键字const作用及其应用
只要学过C语言的,都有知道const这个关键字,知道是用来定义常量的,如果一个变量被const修饰,那么它的值就不能再被改变,那么还有什么其他作用呢? 一.const常用作用 1.修饰局部变量 con ...
- ACM北大暑期课培训第三天
今天讲的内容是深搜和广搜 深搜(DFS) 从起点出发,走过的点要做标记,发现有没走过的点,就随意挑一个往前走,走不 了就回退,此种路径搜索策略就称为“深度优先搜索”,简称“深搜”. bool Dfs( ...
- 【Java基础总结】IO流
字节流 1. InputStream 字节输入流 代码演示 InputStream in = System.in; System.out.println("int read(byte b) ...
- Sql Server学习笔记
1.指定路径创建数据库 create database student on--创建库的时候必须写 ( name=student, filename='E:\database\student.mdf' ...
- 【X86】---X86处理器大小端的数据存储验证
之前也关注过大小端的存储,可能时间久了,加之又之前的电脑抽象换成了当前的处理器寄存器的值判断,导致自己总是有点蒙圈.看Spec手册的时候,有时会无法与手册中某个Bit的值与RU/RW工具读出来的对应上 ...
- 机器学习-K最近邻算法
一.介绍 二.编程 练习一(K最近邻算法在单分类任务的应用): import numpy as np #导入科学计算包import matplotlib.pyplot as plt #导入画图工具fr ...