python文件管理
文件没有修改操作,修改的方式为打开文件--读取文件--内存中编辑文件--将内容写入文件
打开文件方式
with open('a.txt','w') as f: #操作系统自动关闭文件
f.write('xxx\n')
f = open('a.txt','w',encoding='gbk')
f.write('xxx')
f.close()
文件打开模式
- r 只读模式。如果文件不存在,返回异常FileNotFoundError,默认值;
- w 覆盖写模式,文件不存在则创建,存在则完全覆盖;
- x 创建写模式,文件不存在则创建,存在则返回异常FileExistError;
- a 追加写模式,文件不存在则创建,存在则在文件最后追加内容;
- t 文本文件模式,默认值;
- b 二进制文件模式;
- ‘+' 与r/w/x/a一同使用,在原功能的基础上增加同事读写的功能
文件打开时+表示同时读写某个文件
- r+ 读写
- w+ 写读
- x+ 写读
- a+ 写读
b表示以字节的方式操作(对linux无影响,如果需要跨平台性能好文件打开关闭建议采用rb的方式)
- rb或r+b
- wb或w+b
- xb或x+b
- ab或a+b
f.readlines() 一次读取文件,读取后的文件为列表
二进制文件读取,不能指定编码,只能读取文件之后使用decode方式进行解码
f = open(‘a.txt’,'rb')
data = f.read().decode('utf-8')
print(data)
f.close
二进制文件写入,不能指定编码,只能将内容先转换成bytes类型
#方法一
f = open(‘a.txt’,'wb')
f.write(bytes('11111\r\n',encoding='utf-8'))
f.close()
#方法二
a = open(‘a.txt’,'wb')
a.write('杨戬'.encode('utf-8'))
a.close()
文件内容从内存写入到磁盘
一般需要f.close()的时候才能够写入文件,如果不关闭文件,需要使用下面命令写入到文件中
f.flush()
文件光标位置
print(f.tell()) #读取当前光标位置
f.seek() #修改光标位置,按照**字节**计算
f.read(4) #读取4个**字符**
seek三种模式
seek(光标移动多少位,模式)
- 0 默认模式,从文件开头
- 1 以光标当前位置进行seek,相对seek
- 2 从文件末尾进行seek 如seek(-10,2)
使用seek案例
读取文件最后一行
f = open(日志文件,'r')
for i in f:
offs=100 #定义偏移量,一行大概10个字节
while True:
f.seek(offs,2)
data = f.readlines()
if len(data) > 1:
print(‘文件的最后一行是%s’, %(data[-1].decode('utf-8')))
break
offs*=2
循环文件方式,要一行就读取一行,减小内存占用
for i in f:
print(i)
跨平台的换行符读取
f.open("a.txt","r",newline="") #读取真正的换行符
python文件管理的更多相关文章
- python文件管理小计
1.读取只当路径下所有文件和文件夹 import os def file_name(file_dir): for root, dirs, files in os.walk(file_dir): pri ...
- python——文件管理
文件操作分为读.写.修改 一.读文件 f = open(file='D:/工作日常/兼职白领学生空姐模特护士联系方式.txt',mode='r',encoding='utf-8') data = f. ...
- Python标准库04 文件管理 (部分os包,shutil包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在操作系统下,用户可以通过操作系统的命令来管理文件,参考linux文件管理相关命令 ...
- Python -- 标准库 文件管理 (部分os包,shutil包)
在操作系统下,用户可以通过操作系统的命令来管理文件,参考linux文件管理相关命令.Python标准库则允许我们从Python内部管理文件.相同的目的,我们有了两条途径.尽管在Python调用标准库的 ...
- Ubuntu16.04实用python脚本 - 启动nautilus(Gnome的文件管理器)!
nautilus是Gnome的图形的文件管理器,可以很方便管理各种文件,但是通常我们不是在root用户下,如果想在root下使用,必须在shell里面输入命令: sudo nautilus 这样做固然 ...
- Python之路【第五篇】python基础 之初识函数(一)和文件管理
转载请注明出处http://www.cnblogs.com/wupeiqi/articles/5453708.html 函数 一.背景 ...
- python学习笔记25(文件管理 os包)
os包我们经常会与文件和目录打交道,对于这些操作python提供了一个os模块,里面包含了很多操作文件和目录的函数.如果你对linux基本操作了解的话,下面的一些os方法应该会很熟悉的,因为基本和li ...
- Python学习笔记11:标准库之文件管理(os包,shutil包)
1 os包 os包包含各种各样的函数,以实现操作系统的很多功能.这个包很庞杂.os包的一些命令就是用于文件管理. 我们这里列出最经常使用的: mkdir(path) 创建新文件夹.path为一个字符串 ...
- Python 编程实战提高测试工作效率实例之svn 文件管理
#coding=utf-8 ''' Created on 2016年8月22日 @author:Tom Gao ''' importre importos importtime "" ...
随机推荐
- java io 好文传送
转自:白大虾 地址:https://www.cnblogs.com/baixl/p/4170599.html 主要内容 java.io.File类的使用 IO原理及流的分类 文件流 FileInput ...
- HDU 1241 连通块问题(DFS入门题)
Input The input file contains one or more grids. Each grid begins with a line containing m and n, th ...
- ImageConverter引起的 invalid address or address of corrupt block 0xb7feab58 passed to dlfree
虹软人脸识别,其方法要传NV21格式的byte[], github上有一个虹软的Demo,是不是虹软工作人员写的不清楚,这个Demo里bitmap转NV21格式byte[]用的是一个第三方库https ...
- RedHat/CentOS根目录扩容
下面以redhat为例,介绍如何扩容系统根目录,CentOS也是一样的. 1. 登录到系统中,查看硬盘情况. /dev/sdb就是增加的硬盘. [root@test ~]# fdisk -l 2. 操 ...
- 当实体类中entity/DTO/VO等类中,有枚举值,应该怎么输出?
当实体类中entity/DTO/VO等类中,有枚举值,应该怎么输出? 问题: orderStatus 和 payStatus都是枚举类,并且枚举的个数达地10来个,我们不可能在模板页面(jsp/ftl ...
- 跨站请求伪造 CSRF
原理 CSRF攻击原理比较简单,例如Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户.用户C打开浏览器,访问受信任网站A,输入用户名和密码请 ...
- Debian初始化配置
1.解决中文显示乱码windows的宋体文件上传到debian的字体目录,并运行dpkg-reconfigure locales命令来设置系统的字体root@debian:~# mv simsun.t ...
- LeetCode--258--各位相加*
问题描述: 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2. 由于 2 ...
- Linux文件系统管理
第九讲 文件系统管理 基础知识点: 硬盘的构成:主要由盘片.机械手臂.磁头与主轴马达所组成,实际的数据都是写在具有磁性物质上的盘片,通过主轴马达让盘片转动,机械手臂可伸展让磁头在盘片上读取数据 ...
- Search中的剪枝-奇偶剪枝
设有一矩阵如下: 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 从为 0 的格子走一步,必然走向为 1 的格子 .//只能走四 ...