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,内容如下:二十四节气歌春雨惊春清谷天,夏满芒夏暑相连.秋处露秋寒霜降,冬雪雪冬小大寒.上半年逢六廿一,下半年逢八廿三.每月两节日期定,最多相差一二天.要求:将文 ...
随机推荐
- [转][赞]Android开发者必知的开发资源
英文原文:Bongzimo 翻译: ImportNew-黄小非 随着Android平台市场份额的持续猛增 ,越来越多的开发者开始投入Android应用程序的开发大潮.如果您是一位2013年刚刚入行的 ...
- Windows系统的高效使用
1-WIndows10系统的入门使用 2-如何把系统盘的用户文件转移到其他盘 3-Windows装机软件一般有哪些? 4-Windows系统有哪些比较好用的下载器? 5-Windows系统中的播放器 ...
- java多线程二之线程同步的三种方法
java多线程的难点是在:处理多个线程同步与并发运行时线程间的通信问题.java在处理线程同步时,常用方法有: 1.synchronized关键字. 2.Lock显示加锁. 3.信号量Se ...
- scrapy学习-爬取天天基金网基金列表
目录 描述 环境描述 步骤记录 创建scrapy项目 设置在pycharm下运行scrapy项目 分析如何获取数据 编写代码 step 1:设置item step 2:编写spider step 3: ...
- SQL select 和SQL where语句
一.SQL SELECT语句 用于从表中选取数据,结果被存储在一共结果表中(称为结果集) 1.语法: SELECT 列名称 FROM 表名称 以及: SELECT * FROM 表名称 注:SQ ...
- Zebra - zebra command to get printer error and warning status
1 Flag2 Nibble 16-93 Nibble 8-44 Nibble 35 Nibble 26 Nibble 1
- 通过数据库评估存储设备IO性能-Oracle11gIO校准功能介绍
通过数据库评估存储设备IO性能 ---------Oracle11g IO校准功能介绍 前言 I/O子系统是ORACLE数据库的一个重要组成部分,因为I/O操作是贯穿数据库管理全过程,它操作的对象包括 ...
- Xcode & swift
swift-apps swift 2018 apps Xcode Swift Playground https://developer.apple.com/download/ https://deve ...
- BZOJ4563 HAOI2016放棋子(高精度)
没看清题还以为是要求数最大匹配数量……注意到任意障碍不在同一行同一列,且恰好有n个障碍,不妨通过交换列使得第i行第i列均有障碍.那么就是个错排了.居然wa了一发简直没救. #include<io ...
- (转载)Hadoop示例程序WordCount详解
最近在学习云计算,研究Haddop框架,费了一整天时间将Hadoop在Linux下完全运行起来,看到官方的map-reduce的demo程序WordCount,仔细研究了一下,算做入门了. 其实Wor ...