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的更多相关文章

  1. GIS基础软件及操作(十二)

    原文 GIS基础软件及操作(十二) 练习十二. ArcMap制图-地图版面设计 设置地图符号-各种渲染方式的使用 使用ArcMap Layout(布局)界面制作专题地图 将各种地图元素添加到地图版面中 ...

  2. ansible笔记(5):常用模块之文件操作(二)

    ansible笔记():常用模块之文件操作(二) 文件操作类模块 find模块 find模块可以帮助我们在远程主机中查找符合条件的文件,就像find命令一样. 此处我们介绍一些find模块的常用参数, ...

  3. python04篇 文件操作(二)、集合

    一.文件操作(二) 1.1 利用with来打开文件 # with open ,python 会自动关闭文件 with open('a.txt', encoding='utf-8') as f: # f ...

  4. ansible 实战项目之文件操作(二)

    一,前言 如果没有安装好的话看我以前的贴子哦!! 上次安装已经确定通了,所以下面步骤应该是完全ok的 特点: (1).轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可: (2 ...

  5. python 文件操作(二)

    一. 文件的读写 1.找到文件 文件路径:./test.py 2.打开文件 open('文件路径','模式') 模式: r,   以只读的方式打开 w,  打开一个文件只用于写入,如文件已存在,直接重 ...

  6. PHP文件操作函数二

    PHP部分文件访问函数总结: 1.filetype("文件路径")  //可以输出相关文件类型,返回之为:dir/file... 2.stat("文件名") / ...

  7. java 文件操作(二)---Files和Path

    自从java 7以来,引入了FIles类和Path接口.他们两封装了用户对文件的所有可能的操作,相比于java 1的File类来说,使用起来方便很多.但是其实一些本质的操作还是很类似的.主要需要知道的 ...

  8. IIS身份验证和文件操作权限(二、匿名身份验证)

    一.配置匿名身份验证 二.浏览站点 -- 操作文件 ①无操作权限 点击写入 ②有操作权限(IIS_IUSRS.Authenticated Users两个任选一个) 点击写入

  9. python 16 文件操作(二)

    转自 http://www.cnblogs.com/BeginMan/p/3169020.html 一.文件系统 从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进 ...

  10. Python基础学习四 文件操作(二)

    ####读取文件#### with open('goods_info.txt', 'r', encoding='utf-8') as f: f.seek(0) # 注意指针位置 goods_info ...

随机推荐

  1. 20min 快速着手Markdown

    目录 Markdown介绍和基本使用 初步介绍 markdown的使用场景 为什么是 Markdown markdown的基本语法和使用平台 Q&A: Markdown介绍和基本使用 初步介绍 ...

  2. inode 软/硬链接

    一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统 ...

  3. rem、em、px、pt及网站字体大小设配

    rem:相对的只是HTML根元素字体尺寸; em:相对于当前对象内文本的字体尺寸(值不是固定且继承父级元素的字体大小); px像素(Pixel):对于显示器屏幕分辨率而言的; pt:point,是印刷 ...

  4. linux内核分析第七次实验

    实验: rm menu -rf git clone https://github.com/megnning/menu.git cd menu ls mv test_exec.c test.c vi t ...

  5. 基于SSH 供应链管理系统质量属性说明

    产品的易用程度如何,执行速度如何,可靠性如何,当发生异常情况时,系统如何处理.这些被称为软件质量属性,而特性是指系统非功能(也叫非行为)部分的需求. 性能:性能就是一个东西有多快,通常指响应时间或延迟 ...

  6. ElasticSearch NEST笔记

    ElasticSearch NEST笔记 1. 什么是ElasticSearch? ElasticSearch is a powerful open source search and analyti ...

  7. [转帖]git、github、gitlab之间的关系

    Git - 版本控制工具 Github - 一个网站,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等 GitLab - 基于Git的项目管理软件 Git分布式版本控制系统 Git是一款 ...

  8. 日常工作: 应用服务器Oracle驱动问题说明

    1. .net使用Oracle驱动的发展等 作为.net线的产品的ERP产品 最初的版本 使用了.net 1.1发布时 微软提供的Oracle的驱动 但是后续微软的.net产品线貌似没有继续发展相应的 ...

  9. Windows系统下PHP使用Redis

    参考链接:https://www.cnblogs.com/lhat/p/6402472.html 环境:windows 10  64位操作系统    php 5.4 redis 3.0 1.redis ...

  10. General Test Scenarios

    1 all mandatory fields should be validated and indicated by askterisk(*) symbol2 validation error me ...