文件操作(十二)——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 ...
随机推荐
- iphone忘记锁屏密码却记得appleID密码的不保存数据的刷机办法
请注意看清题目再看本文,另外一切后果博主不负任何责任.操作实现环境:原装数据线,拔掉sim卡昨天,iPhone6sp忘记密码被锁定,尝试通过找回手机抹除手机功能后,提示需要手机接入互联网才能实现,而我 ...
- BAT大厂面试流程剖析
在当今互联网中,虽然互联网行业从业者众多,不断崛起的互联网公司也会很多,但如BAT等大厂,仍然是很多同学想要进入的企业.那么本篇文章将会为大家很直白的讲解大厂的面试流程以及侧重点. 首先闲聊一下,为什 ...
- Visual Studio的安装与单元测试
一.Visual Studio的安装 由于上学期重装了win10系统,以前使用的vc++6.0不能够正常使用,所以直接就安装了Visual Studio 2015,安装的时候就直接按照提示的步骤进行安 ...
- Daily scrum 12.24
平安夜闲得想来一遍scrum,添加了之前ui组的数据库问题修复任务. 其实是之前忘记在任务中添加了.现在基本修复完成. Member Today’s task 林豪森 与学霸其他小组交流,处理整合问题 ...
- Linux实践:文件破解
Linux实践:文件破解 标签(空格分隔): 20135321余佳源 一.掌握NOP.JNE.JE.JMP.CMP汇编指令的机器码 NOP:NOP指令即"空指令".执行到NOP指令 ...
- 2017-2018-2 1723《程序设计与数据结构》第八周作业 & 实验二 & 第一周结对编程 总结
作业地址 第八周作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1847 (作业界面已评分,可随时查看,如果对自己的评分有意 ...
- sql 语句的先后执行顺序
例:查询语句中select from where group by having order by的执行顺序 一般以为会按照逻辑思维执行,为: 查询中用到的关键词主要包含六个,并且他们的顺序依次为 ...
- jdk自带的jvisualvm-监控远程linux
简介 jdk有好多自带的工具比如jconsole.jvisualvm.jstatd等 Windows的路径:%JAVA_HOME/bin/目录下,配置好环境变量直接用cmd执行jvisualvm命令即 ...
- github个人心得
github真难全是英语真费劲 以后要好好学习英语 https://github.com/huangjingyi/test
- 如何使squild服务只能使用自定义的端口号
编辑配置文件: vim /etc/squid/squid.conf http_port 10000 使用 setsebool 命令来限制 squild 服务只能使用自定义的端口: setsebool ...