文件操作(十二)——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 ...
随机推荐
- 20min 快速着手Markdown
目录 Markdown介绍和基本使用 初步介绍 markdown的使用场景 为什么是 Markdown markdown的基本语法和使用平台 Q&A: Markdown介绍和基本使用 初步介绍 ...
- inode 软/硬链接
一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统 ...
- rem、em、px、pt及网站字体大小设配
rem:相对的只是HTML根元素字体尺寸; em:相对于当前对象内文本的字体尺寸(值不是固定且继承父级元素的字体大小); px像素(Pixel):对于显示器屏幕分辨率而言的; pt:point,是印刷 ...
- linux内核分析第七次实验
实验: rm menu -rf git clone https://github.com/megnning/menu.git cd menu ls mv test_exec.c test.c vi t ...
- 基于SSH 供应链管理系统质量属性说明
产品的易用程度如何,执行速度如何,可靠性如何,当发生异常情况时,系统如何处理.这些被称为软件质量属性,而特性是指系统非功能(也叫非行为)部分的需求. 性能:性能就是一个东西有多快,通常指响应时间或延迟 ...
- ElasticSearch NEST笔记
ElasticSearch NEST笔记 1. 什么是ElasticSearch? ElasticSearch is a powerful open source search and analyti ...
- [转帖]git、github、gitlab之间的关系
Git - 版本控制工具 Github - 一个网站,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等 GitLab - 基于Git的项目管理软件 Git分布式版本控制系统 Git是一款 ...
- 日常工作: 应用服务器Oracle驱动问题说明
1. .net使用Oracle驱动的发展等 作为.net线的产品的ERP产品 最初的版本 使用了.net 1.1发布时 微软提供的Oracle的驱动 但是后续微软的.net产品线貌似没有继续发展相应的 ...
- Windows系统下PHP使用Redis
参考链接:https://www.cnblogs.com/lhat/p/6402472.html 环境:windows 10 64位操作系统 php 5.4 redis 3.0 1.redis ...
- General Test Scenarios
1 all mandatory fields should be validated and indicated by askterisk(*) symbol2 validation error me ...