# encoding:utf-8
# 文件读取操作
fp=open("E:\\file.txt","r",encoding="utf-8" )
data_read=fp.read()#一次性全部读完
fp.seek(0,0)#游标移动到第一行,继续读,否则读取到的是空
data_readlines=fp.readlines()
fp.close()
print(data_readlines)
print(data_read)
# 练习:统计文件中一行存在test的行数
# 注:文件读取的时候,行的末尾包含回车换行符号\n
# 如果文件很大用readlines读取,小文件直接用read读取,read读取的是整个文件内容,readlines结果是list
count=0
fp=open("e:\\file.txt","r",encoding="utf-8")
lines=fp.readlines()
for i in lines:
if "test" in i:
print(i)
count+=1
print(count)
# read() readlines() readline()的区别
# read()—当成一个字符串读出
# readlines()readlines返回的是列表
# readline()一行一行读文件
# 如果文件很大,用read()内存不够(如运维日志几十G)
# 用readline来读超大文件
#原则:内存在电脑中是个稀缺的资源,如果你占用大量内存,程序肯定不是最优的,小文件:read、readlines速度更快些 模式
w+:先清空所有文件内容,然后写入,然后你才可以读取你写入的内容
r+:不清空内容,可以同时读和写入内容。 写入文件的最开始
a+:追加写,所有写入的内容都在文件的最后 # a+
fp=open("e:\\file.txt","a",encoding="utf-8")
fp.write("hello python")
fp.close()
fp=open("e:\\file.txt","r",encoding="utf-8")
data=fp.read()
fp.close()
print(data)
w+
#此时不需要关闭文件,w+ 可读可写(清空再写),文件不存在就创建,r+可读可写不存在报错
fp=open("e:\\file.txt","w+",encoding="utf-8")
fp.write("hello python")
fp.seek(0,0)
data=fp.read()
fp.close()
print(data)
#此时不需要关闭文件,a+ 可读可写(末尾追加再写),文件不存在就创建,r+可读可写不存在报错
fp=open("e:\\file.txt","a+",encoding="utf-8")
fp.write("\nhello python1")#\n用来换行
fp.seek(0,0)
data=fp.read()
fp.close()
print(data)
# 关于open()的mode参数:
# 'r':读
# 'w':写
# 'a':追加
# 'r+' == r+w(可读可写,文件若不存在就报错(IOError))
# 'w+' == w+r(可读可写,文件若不存在就创建)
# 'a+' ==a+r(可追加可写,文件若不存在就创建)
# 对应的,如果是二进制文件,就都加一个b就好啦:
# 'rb'  'wb'  'ab'  'rb+'  'wb+'  'ab+' seek(offset,whence)
seek()
offset:坐标 正数表示从前向后 负数表示从后向前 0表示
最开始的游标
whence:0,1,2 0表示从文件最开始位置,0,0
1:表示从当前位置开始,基于当前的相对位置,来重置坐标。
10 seek(5,1) 10-->5,现在的坐标是15
2:表示从文件的末尾开始,做相对位置,来重置坐标
seek(-5,2)-->末尾向前数5个字符。
注意;:1和2使用基于rb模式
注意:这个文件指针的改变只是作用于'r',对'w'和'a'不会起作用,如果是'w',
那么write()永远都是从开头写(会覆盖后面对应位置的内容),是'a'的话write()就永远都是从最后开始追加。 fp=open("e:\\file.txt","rb")
data=fp.readlines()
print(fp.tell())
fp.seek(-8,1)
data1=fp.readlines()
fp.close()
print("data:",data)
print("data1:",data1)

python文件的读写追加等操作的更多相关文章

  1. Python文件的读写操作

    Python文件的使用 要点:Python能够以文本和二进制两种形式处理文件. 1.文件的打开模式,如表1:  注意:使用open()函数打开文件,文件使用结束后耀使用close()方法关闭,释放文件 ...

  2. 【8】python文件的读写方法

    (1).读文件的步骤: (1)打开文件 open(path,flag,encoding,[errors]) path:打开路径 flag:打开方式 r(只读) rb(二进制格式) r+(可以读写) w ...

  3. python文件的读写总结

    读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...

  4. python文件的读写的模式

    <1>打开文件 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件名,访问模式) 示例如下: f = open('test.txt', 'w' ...

  5. python文件的读写权限以及相关应用read、write和文件指针

    f=open('ceshi.txt','a',encoding='utf-8')r=open('ceshi.txt','r',encoding='utf-8')上面的2种写法可以用with来写:wit ...

  6. [ Python ] 文件的读写操作

    1. 文件读写操作 读写文件是最常见的 IO 操作, Python 内置了读写文件的函数.在磁盘上读写文件的功能是由操作系统提供的,所以读写文件是请求操作系统打开一个文件对象(通常称为文件描述符),然 ...

  7. Python文件的读写

    一.写数据 f = open("hello.txt", "w") f.write("hello world python!") f.clos ...

  8. 第9.9节 Python文件随机读写定位操作方法seek

    类似于C语言,Python也提供了文件位置定位的操作方法seek. 一. 语法 seek(offset, whence=SEEK_SET) 语法释义: 1)offset :将文件当前操作位置移动偏移量 ...

  9. python文件实现增删改查操作

    # coding = utf-8 import os import json import re ''' 本程序旨在将练习基础知识部分,包括: 列表,元组,字典,文件,函数,字符串等知识 实现的功能: ...

随机推荐

  1. Python学习之路8☞迭代器协议和生成器

    一 什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代 ...

  2. BZOJ 1008 越狱题解

    其实这题很水,显然n个房间有m种宗教,总共有n^m种情况, 我们再考虑不合法的情况,显然第一个房间有m种情况,而后一种只有m-1种情况(因为不能相同) 所以不合法的情况有(m-1)^(n-1)*m种情 ...

  3. HZOJ trade

    强烈谴责$skyh$的没$\Huge 脸$行为. 很经典的可反悔贪心,然而我一直以为是sbdp还一直想着怎么优化…… 正常的贪心肯定是不对的. 但是由于A-C=A-B+B-C, 所以用一个小根堆维护, ...

  4. hdu 2412 Party at Hali-Bula【树形dp】

    HDU 2412 和poj 2342(hdu 1520)差不多,多了一个判断最优解是(Yes)否(No)唯一.关键问题也在这个判断最优解是否唯一上. 先定义dp[u][2],表示选(dp[][1])或 ...

  5. 2019-8-31-cmd-如何跨驱动器移动文件夹

    title author date CreateTime categories cmd 如何跨驱动器移动文件夹 lindexi 2019-08-31 16:55:58 +0800 2019-02-27 ...

  6. python 字典创建

  7. uda 3.C++二维向量

    二维向量 接下来,你将使用向量来存储矩阵.就像 Python 使用列表列表来存储矩阵一样,C++ 使用的是向量的向量.用于声明二维向量的语法有点复杂. 假设你正在使用 Python,并且想存储一个 3 ...

  8. Element-ui学习笔记1

    1.col,row布局注意事项 el-row el-col gutter就是css,span的时候宽度是按boder-box来计算. 将 type 属性赋值为 'flex',可以启用 flex 布局, ...

  9. Oracle的dual是什么东西啊

    原文:https://zhidao.baidu.com/question/170487574.html?fr=iks&word=dual&ie=gbk Oracle的dual是什么东西 ...

  10. python新知识

    # 强制字符串转化 repr(1.1 + 2.2) # 字符串换行 a = "hello, world. " \ "it's a nice day. " \ & ...