习题十五~习题十七
2016-01-28 00:00
127 查看
摘要: 文件操作
文件操作的流程是打开文件,文件操作,关闭文件。
打开文件open:
open帮助文档
open(...)
open(name[, mode[, buffering]]) -> file object
Open a file using the file() type, returns a file object. This is the
preferred way to open a file. See file.__doc__ for further information.
意为打开文件后,返回一个文件对象,就是说open()就可以指代这个打开的文件,因此后续的文件操作都以open()为对象,为了方便,通常把这个文件对象赋给一个变量,如:
这样就不用每一次操作都输入open()函数了,而且想要换一个文件进行操作时只需对变量进行改变即可。
帮助文档中标明函数有三个参数,第一个是文件名,第二个是打开模式,第三个参数用来控制文件的缓冲(一般不用)。
文件名:
默认的文件搜索路径是脚本所在的文件夹,所以只要脚本文件和要操作的文档文件在一个文件夹,括号内直接输入文件名即可,当文档文件和脚本文件在不同文件夹时,用追溯的方法确定文件位置:
注意到,文件名都用引号括起来,因为它必须为字符串格式,所以文件名的输入常用raw_input和argv,这样文件名就自动转化为字符串格式了:
open模式参数:
在open( )的括号中加入不同的模式参数,才可以对文件进行对应的操作,可以说模式参数是文件操作的灵魂。
下面只介绍常用的几种:w, r, a,w+,r+,a+
r:即read,读取模式,这是open函数的缺省(默认)参数,不规定参数时,文件默认为读取模式。
w:即write,写入模式,会自动清除文件元来的内容,相当于新建。
a:即append,追加模式,写入的内容附加在文件的末尾,没有此文件时自动创建。
r+:以读写方式打开文件,文件可读可写,可写到文件的任何位置。
w+:以读写方式打开文件, 和r+不同的是,写文件时它会首先清空文件。
a+:以读写方式打开文件, 和r+不同的是,它只能写到文件末尾。
文件操作方法:
write( ):打开模式为写入或读写时使用,可以向文件中写入文本。写入的内容以字符串的形式放入括号中。
read(size):读取文件,打开模式为读取或读写时使用。
不设置size时,默认读取整个文件,设置size时,size为读取的字节数。
read( )输出字符串。
运行结果:
运行结果:
readline(size):按行读取文件,打开模式为读取或读写时使用。
不设置size时,默认读取第一行文件,设置size时,size为读取的字节数。
readline( )输出字符串。
运行结果:
运行结果:
读取完一行后,系统读取光标移到下一行的开头0位置,下次读取从第二行开始:
运行结果:
readlines(size):按行读取文件,打开模式为读取或读写时使用。
不设置size时,默认读取第一行文件,设置size时,size为读取的字节数。
readlines( )输出带换行符的列表(之后讲到)。
运行结果:
运行结果:
注意到文中每行末尾都有系统默认加上的换行符\n,因此readline( )读取行时,读取到\n会换行从而显示出一个空行:
运行结果:
truncate( ):清空文件。
关闭文件:
close( ):关闭文件,相当于保存,文件操作完成后的关闭是很有必要的。
文件操作的流程是打开文件,文件操作,关闭文件。
打开文件open:
open帮助文档
open(...)
open(name[, mode[, buffering]]) -> file object
Open a file using the file() type, returns a file object. This is the
preferred way to open a file. See file.__doc__ for further information.
意为打开文件后,返回一个文件对象,就是说open()就可以指代这个打开的文件,因此后续的文件操作都以open()为对象,为了方便,通常把这个文件对象赋给一个变量,如:
file = open(filename)
这样就不用每一次操作都输入open()函数了,而且想要换一个文件进行操作时只需对变量进行改变即可。
帮助文档中标明函数有三个参数,第一个是文件名,第二个是打开模式,第三个参数用来控制文件的缓冲(一般不用)。
文件名:
默认的文件搜索路径是脚本所在的文件夹,所以只要脚本文件和要操作的文档文件在一个文件夹,括号内直接输入文件名即可,当文档文件和脚本文件在不同文件夹时,用追溯的方法确定文件位置:
text = open("python.txt")#同一文件夹 text = open("../yanyuxing/python.txt")#上溯 text = open("yuanchuang/python.txt")#下探 text = open("E://python.txt")#其它磁盘
注意到,文件名都用引号括起来,因为它必须为字符串格式,所以文件名的输入常用raw_input和argv,这样文件名就自动转化为字符串格式了:
from sys import argv script, filename = argv text = open(filename)
filename = raw_input(">") text = open(filename)
open模式参数:
在open( )的括号中加入不同的模式参数,才可以对文件进行对应的操作,可以说模式参数是文件操作的灵魂。
下面只介绍常用的几种:w, r, a,w+,r+,a+
r:即read,读取模式,这是open函数的缺省(默认)参数,不规定参数时,文件默认为读取模式。
w:即write,写入模式,会自动清除文件元来的内容,相当于新建。
a:即append,追加模式,写入的内容附加在文件的末尾,没有此文件时自动创建。
r+:以读写方式打开文件,文件可读可写,可写到文件的任何位置。
w+:以读写方式打开文件, 和r+不同的是,写文件时它会首先清空文件。
a+:以读写方式打开文件, 和r+不同的是,它只能写到文件末尾。
文件操作方法:
write( ):打开模式为写入或读写时使用,可以向文件中写入文本。写入的内容以字符串的形式放入括号中。
read(size):读取文件,打开模式为读取或读写时使用。
不设置size时,默认读取整个文件,设置size时,size为读取的字节数。
read( )输出字符串。
x = open("../yanyuxing/python.txt") text = x.read() print type(text) x.close()
运行结果:
x = open("../yanyuxing/python.txt") text = x.read() print text x.close()
运行结果:
readline(size):按行读取文件,打开模式为读取或读写时使用。
不设置size时,默认读取第一行文件,设置size时,size为读取的字节数。
readline( )输出字符串。
x = open("../yanyuxing/python.txt") text = x.readline() print type(text) x.close()
运行结果:
x = open("../yanyuxing/python.txt") text = x.readline() print text x.close()
运行结果:
读取完一行后,系统读取光标移到下一行的开头0位置,下次读取从第二行开始:
x = open("../yanyuxing/python.txt") for i in range(4): text = x.readline() print text x.close()
运行结果:
readlines(size):按行读取文件,打开模式为读取或读写时使用。
不设置size时,默认读取第一行文件,设置size时,size为读取的字节数。
readlines( )输出带换行符的列表(之后讲到)。
x = open("../yanyuxing/python.txt") text = x.readlines() print type(text) x.close()
运行结果:
x = open("../yanyuxing/python.txt") text = x.readlines() print text x.close()
运行结果:
注意到文中每行末尾都有系统默认加上的换行符\n,因此readline( )读取行时,读取到\n会换行从而显示出一个空行:
x = open("../yanyuxing/python.txt") text = x.readline() print text[-1] x.close()
运行结果:
truncate( ):清空文件。
file.truncate()
关闭文件:
close( ):关闭文件,相当于保存,文件操作完成后的关闭是很有必要的。
file.close()
相关文章推荐
- linq 学习
- php7编译swoole
- performselector有警告的解决办法
- molo 安装记录
- 用Kibana+Logstash+Elasticsearch快速搭建实时日志查询、收集与分析系统
- 用JIRA管理你的项目——(一)JIRA环境搭建
- base64编码后传输后+号变成空格
- lz4压缩解压缩
- c3p0数据源
- JDBC连接池的testQueryvalidationQuery设置
- 数据库及连接池若干问题特集
- Eclipse中的Web项目自动部署到Tomcat
- springtxadvice事务配置
- Spring@Autowired注解与自动装配
- Spring 使用注解方式进行事务管理
- applicationContext.xml 配置文件的存放位置
- Windows 64位下安装Redis详细教程
- Redis+Mysql模式和内存+硬盘模式的异同
- iOS根据该地经纬度在地图上显示该地的大头针
- sqoop1.4.6安装配置