文件操作(十二)——open,read,close,write,seek,truncate
open函数
#!/usr/bin/env python
#-*- coding:utf8 -*- f = open('xxx','r',encoding='utf-8')
data = f.read()
print(data)
f.close() # readlines() 读多行,以列表的形式返回
f = open('xxx','r',encoding='utf-8')
data = f.readlines() # ['111111\n', '2222\n', '33333\n', '44444\n', '555555']
print(data)
f.close()
des = open('xxx_new', 'w', encoding='utf-8')
des.write(data[0]) # 新文件的内容为 : 111111
des.close()
# writelines 传入一个列表
des = open('xxx_new', 'w', encoding='utf-8')
des.writelines(data)
des.close()
# 追加模式‘a' f = open('xxx','a+',encoding='utf-8')
f.write('666666\n')
data = f.readlines()
print(data)
f.close() # readline() 读一行
f = open('xxx','r',encoding='utf-8')
data = f.readline()
print(data)
f.close() '''
引用另外一个文件的函数
'''
import test_import
test_import.test()
文件模式:
rb模式,wb模式
f = open('xxx','rb') # b 模式不能指定编码
data = f.read()
print(data)
f.close()
'''
hello
2222
33333
你好世界
b'hello\r\n2222\r\n33333\r\n\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xb8\x96\xe7\x95\x8c'
'''
f = open('xxx','rb') # b 模式不能指定编码
data = f.read() # 都出来的内容就是二进制的
print(data.decode('utf-8')) # 把读出来的二进制解码,将显示为正常的字符串
f.close()
'''
hello
2222
33333
你好世界
'''
f = open('test_1','wb') # b 模式不能指定编码
str1 = '1111\n'
str2 = '2222\n'
str11 = bytes(str1,encoding='utf-8')
f.write(str11)
f.write(str2.encode('utf-8'))
f.close()
tell(),seeek(),truncate()
# 除了read() 是以字符为单位读取,其他的是以字节为单位读取
f = open('test_1','r',encoding='utf_8',newline='') # newline 还原真的换行符,windows:\r\n,linux:\n
data = f.readline()
print(data.rstrip('\n')) #截掉字符串的空格或指定字符(\t,\n也可以)。
print(f.tell()) # 文件光标的位置
f.seek(0) # 移动光标的位置
print(f.tell())
data = f.readlines()
print(data)
f.close()
f = open('test_1','r+',encoding='utf_8')
f.truncate(5) # 截断,必须要有写的权限, 保存截断参数之前的内容
f.close()
seek(), 有三种模式,whence对应取:0,1,2
0:表示从文件开头位置,也是默认模式
1:相对位置,相对位置要以‘b‘形式打开文件
2:倒着seek
def seek(self, offset: int, whence: int = 0) -> int:
f = open('test_1','rb')
print(f.tell()) #
data = f.readlines()
print(f.tell()) #
f.seek(-5,2) # 2 从结尾读取5个字节
print(f.tell()) #
data = f.read()
print(data)
利用seek读取文件最后一行的内容
f = open('test_1','rb')
for i in f:
pos = -2
while True:
f.seek(pos, 2) # 每次从文件末尾偏移pos个字节开始读
data = f.readlines()
if len(data) > 1:
print("文件的最后一行是 %s" %(data[-1]).decode('utf-8'))
break
pos *= 2
文件操作(十二)——open,read,close,write,seek,truncate的更多相关文章
- GIS基础软件及操作(十二)
原文 GIS基础软件及操作(十二) 练习十二. ArcMap制图-地图版面设计 设置地图符号-各种渲染方式的使用 使用ArcMap Layout(布局)界面制作专题地图 将各种地图元素添加到地图版面中 ...
- ansible笔记(5):常用模块之文件操作(二)
ansible笔记():常用模块之文件操作(二) 文件操作类模块 find模块 find模块可以帮助我们在远程主机中查找符合条件的文件,就像find命令一样. 此处我们介绍一些find模块的常用参数, ...
- python04篇 文件操作(二)、集合
一.文件操作(二) 1.1 利用with来打开文件 # with open ,python 会自动关闭文件 with open('a.txt', encoding='utf-8') as f: # f ...
- ansible 实战项目之文件操作(二)
一,前言 如果没有安装好的话看我以前的贴子哦!! 上次安装已经确定通了,所以下面步骤应该是完全ok的 特点: (1).轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可: (2 ...
- python 文件操作(二)
一. 文件的读写 1.找到文件 文件路径:./test.py 2.打开文件 open('文件路径','模式') 模式: r, 以只读的方式打开 w, 打开一个文件只用于写入,如文件已存在,直接重 ...
- PHP文件操作函数二
PHP部分文件访问函数总结: 1.filetype("文件路径") //可以输出相关文件类型,返回之为:dir/file... 2.stat("文件名") / ...
- java 文件操作(二)---Files和Path
自从java 7以来,引入了FIles类和Path接口.他们两封装了用户对文件的所有可能的操作,相比于java 1的File类来说,使用起来方便很多.但是其实一些本质的操作还是很类似的.主要需要知道的 ...
- IIS身份验证和文件操作权限(二、匿名身份验证)
一.配置匿名身份验证 二.浏览站点 -- 操作文件 ①无操作权限 点击写入 ②有操作权限(IIS_IUSRS.Authenticated Users两个任选一个) 点击写入
- python 16 文件操作(二)
转自 http://www.cnblogs.com/BeginMan/p/3169020.html 一.文件系统 从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进 ...
- Python基础学习四 文件操作(二)
####读取文件#### with open('goods_info.txt', 'r', encoding='utf-8') as f: f.seek(0) # 注意指针位置 goods_info ...
随机推荐
- RetrieveFavicon 获取任何站点的 favicon
原文发表于我的技术博客 开源了一个获取任何站点 favicon 的类库,供使用. 原文发表于我的技术博客 RetrieveFavicon Project GitHub Retrieve favicon ...
- 线上mongodb 数据库用户到期时间修改的操作记录
登陆版权数据库,显示"此用户已到期",数据库使用的是mongodb,顾 需要将此用户的到期时间延长. 解决过程: 1)到网站对应tomcat配置里找出等里mongodb的信息(mo ...
- 牛客训练赛25-A-因数个数
题目链接https://www.nowcoder.com/acm/contest/158/A 无语...这题很迷啊,原谅我的菜,刚开始想用预处理欧拉筛和前缀和,可是这题太血崩了,这样一样要遍历,1-e ...
- LINUX内核分析第五周学习总结——扒开系统调用的“三层皮”(下)
LINUX内核分析第五周学习总结--扒开系统调用的"三层皮"(下) 标签(空格分隔): 20135321余佳源 余佳源 原创作品转载请注明出处 <Linux内核分析>M ...
- java 五子棋游戏
五子棋游戏 一,1.五子棋的基本常识 与任何一种竞技棋一样,五子棋的每一局棋也分为三个阶段:开局,中局和残局. 五子棋的开始阶段称为开局,或称布局.其开局阶段是十分短暂的,大约在七着与十几着之间.在这 ...
- 剑指offer:树的子结构
题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 解题思路: 同样考虑用递归来做. 利用两个递归函数,一个用于判断两棵树树否相等,另一个递归取A的 ...
- What’s for Beta
经过和Travis与Zhongqiu讨论,我们希望我们发布的Beta版本会支持如下内容: Naïve long-term plan UI (Useable) Naïve long-term plan ...
- QT下opencv的编译和使用
需要的文件 qt-opensource-windows-x86-mingw491_opengl-5.4.0.exe cmake-3.12.0-rc1-win64-x64.msi opencv-2.4. ...
- Redis持久化的两种方式和区别
该文转载自:http://www.cnblogs.com/swyi/p/6093763.html Redis持久化的两种方式和区别 Redis是一种高级key-value数据库.它跟memcached ...
- Server Tomcat v7.0 Server at libra failed to start
https://stackoverflow.com/questions/13244233/server-tomcat-v7-0-server-at-localhost-failed-to-start- ...