Python学习笔记 - day5 - 文件操作
Python文件操作
读取文件
想要读取文件,那么就需要先行打开文件。
# 格式:
f = open(filename,mode,encoding) # filename:表示文件名。
# mode:表示打开文件的格式。
# encoding:表示打开的编码格式。
例子:
f = file('/etc/passwd','r') # Python 2.x中包含file和open两个操作文件的函数,Python 3.x 中只有open,操作方法相同
for line in f.readlines():
line = line.strip('\n').split(':')
print line 结果:
['root', 'x', '0', '0', 'root', '/root', '/bin/bash']
['bin', 'x', '1', '1', 'bin', '/bin', '/sbin/nologin']
... ...
补充:
文件打开模式
文件打开的方式有如下几种:
- r:只读打开,文件的默认打开方式
- w:文件不存在会创建,存在的话,会覆盖源文件(非追加)
- a:只追加模式打开(不能读)
- r+: 读写模式(写是追加) --->常用
- a+: 追加读写
- w+:写读模式(写同样是追加) ---->不常用
- rb:二进制读模式(一般用来做网络传输数据的时候,因为网络传输都是基于二进制格式的,所以必须用b) python 2.x 是可以用str传输的
- r+b:以二进制读写模式打开
- w+b:以二进制写读模式打开
- a+b:以二进制追加及读模式打开
- b:使用二进制模式(特殊文件需要用文本模式传输的话,建议使用b)
f = open('test.txt','rb')
f.write('你好'.encoding())
通过encoding就可以转换成二进制
文件对象方法
fd.closed():判断文件是否被关闭,若被打开提示False,没有的话提示True
fd.flush():把修改的内容,强制刷新到文件中去
fd.isatty:判断是否是一个终端文件
fd.mode:查看文件的打开模式
fd.name:查看文件的名称
fd.next:迭代的方法,和readline很像,区别是,next读到末尾会报错,readline会继续返回空
fd.read:一次性读取所有内容,以字符串的方式存取
fd.readable():判断文件是否可读
fd.readlines:一次性读取所有内容,以列表的方式存取(适合操作小文件)
fd.readline():每次读取一行内容
fd.seek(0):调整文件读取的指针位置
fd.seekable():判断文件是否可以调整指针位置(tty,磁盘等文件是不能被seek的),可以被seek则返回真,否则返回假 --Python3.x
fd.tell():查询文件目前读取位置(以字符为单位)
fd.truncate():截取文件,从开头开始截取,不指定指针位置的话,那么会清空文件
fd.write:把一个字符串写入到文件中去
fd.writelines():把字符串列表写入文件中
fd.xreadlines():读一行打印一行,针对大文件非常适用 -----> Python 2.x 中适用,3.x中已经取消
fd.encoding:查看文件的编码
fd.writeable():判断文件是否可以写
fd.fileno(): 返回文件在操作系统上的文件描述符(默认会打开三个:0表示 stdin、1表示 stdout,2表示stderr)
fd.name:文件名称
练习
#!/usr/bin/env python
fd = open('/tmp/hello.txt')
for line in fd:
print line, 注意:这里for line in fd,其实可以从fd.readlines()中读取,但是如果文件很大,那么就会一次性读取到内存中,非常占内存,而这里fd存储的是对象,只有我们读取一行,它才会把这行读取到内存中,建议使用这种方法。
#!/usr/bin/env python
fd = open('/tmp/hello.txt')
while True:
line = fd.readline()
if not line:
break
print line,
fd.close()
使用with
with open('/tmp/hello.txt') as fd:
while True:
line = fd.readline()
if not line:
break
print line,
Python学习笔记 - day5 - 文件操作的更多相关文章
- python学习笔记之文件操作(三)
这篇博客小波主要介绍一下python对文件的操作 对文件的操作主要分为三步: 1.打开文件获取文件的句柄,句柄也是文件描述符 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件,是小波随写的周杰伦 ...
- python学习笔记4(文件操作)
文件操作: 1.f=open(”caidan”,”w”,encoding=”utf8”) 直接打开一个文件,如果文件不存在则创建文件 f.close() 2.with open (”caid ...
- python学习笔记三 文件操作(基础篇)
文件操作 打开文件 open(name[,mode[,buffering]]) open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉] w ...
- python学习笔记(三):文件操作和集合
对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...
- python学习笔记:文件操作和集合
一.文件操作 文件读写步骤:有一个文件,打开文件,操作文件读写文件,关闭文件. python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例) 模式 可做操作 若文件不存在 是否覆盖 r ...
- python学习笔记(六)---文件操作与异常处理机制
文件读取 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,且在小数点后每10位处都换行: pi_digits.txt 3.14159 ...
- 我的Python学习笔记之文件操作
一,Python的文件类型有两种 1.文本文件 2.二进制文件 文件的操作: 1.打开文件,获取文件的控制权 2.读写文件 3.关闭文件,释放文件的控制权,如果不释放控制权,那么其他程序就不能访问此文 ...
- python学习笔记(四)-文件操作
文件读写"""一.文件打开有3种方式 1.读 r #如果打开的文件的时候没有指定模式,那么默认是读 读写模式 r+,只要沾上r,文件不存在的时候,打开都会报错 2.写 w ...
- python学习笔记(五)-文件操作2
一.文件修改 现有文件file.txt,内容如下:二十四节气歌春雨惊春清谷天,夏满芒夏暑相连.秋处露秋寒霜降,冬雪雪冬小大寒.上半年逢六廿一,下半年逢八廿三.每月两节日期定,最多相差一二天.要求:将文 ...
随机推荐
- win10 java环境变量配置
首先,你应该已经安装了 Java 的 JDK 了(如果没有安装JDK,请跳转到此网址:http://www.oracle.com/technetwork/java/javase/downloads/i ...
- Spring常用注解用法总结
转自http://www.cnblogs.com/leskang/p/5445698.html 1.@Controller 在SpringMVC 中,控制器Controller 负责处理由Dispat ...
- 虚拟现实-VR-UE4-创建第一个C++项目——Hello word
这部分主要是调用在C++中用代码实现在游戏界面上面输出一行文字 第一步,新建C++版本的工程文件,在4.12版本以后,在创建后,都会自动打开Vs编译器. 如下图 在VS中点击编译,等带编译,第一次等待 ...
- 《python核心编程第二版》第4章习题
4–1. Python 对象.与所有 Python 对象有关的三个属性是什么?请简单的
- Turtle模块,一个超精简但功能齐全的绘图包
先上官方链接https://docs.python.org/3.3/library/turtle.html 再上一个GitHub上别人做的一个小程序,画小猪佩琦的,里面用到了大量常用的turtle接口 ...
- 学习bash——数据流重定向
一.概述 1. 数据流 定义:以规定顺序被读取一次的数据序列. 分类:标准输入(stdin).标准输出(stdout)和标准错误输出(stderr). 标准输出:指的是命令执行所回传的正确信息. 标准 ...
- 数据结构6——DFS
一.相关定义 深度优先遍历,也有称为深度优先搜索,简称DFS.其实,就像是一棵树的前序遍历. 初始条件:图G所有顶点均未被访问过,任选一点v. 思想:是从一个顶点V1开始,沿着一条路一直走到底,如果发 ...
- 利用vue-cli搭建项目后的目录结构
npm install -g vue-cli vue init webpack my-project(项目名称) 后的目录结构: -----build webpack配置相关 --- ...
- 使用 Redis的SETNX命令实现分布式锁
使用Redis的 SETNX 命令可以实现分布式锁,下文介绍其实现方法. SETNX命令简介 命令格式 SETNX key value 将 key 的值设为 value,当且仅当 key 不存在. 若 ...
- hdu 3500 Fling (dfs)
Fling Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submi ...