python入门系列9― | 您所在的位置:网站首页 › python1!+3! › python入门系列9― |
欢迎前往我的个人博客 python 提供了file对象来对文件操作。 打开文件:open函数,此函数会创建一个file对象,然后通过相关函数进行调用 格式: file object = open(file_name [, access_mode][, buffering])各参数如下:file_name:包含路径的文件名access_mode:打开文件的模式,包括只读,写入,追加等。默认文件访问模式为只读(r)。buffering:为0表示不会有寄存。为1表示访问文件时会寄存行。如果设为大于1的整数,表示寄存区的缓冲大小。负值为默认。打开模式包含: r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。r+ 打开一个文件用于读写。文件指针将会放在文件的开头。rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 我们可以来个例子看下: 首先创建一个hello.txt,内容如下: hellopython1+1=2www.baidu.com然后同目录创建一个python文件。具体代码如下: f = open("hello.txt")print "文件名: ", f.nameprint "是否已关闭 : ", f.closedprint "打开模式 : ", f.mode结果:文件名: hello.txt是否已关闭 : False访问模式 : r有打开文件就有关闭文件,这个时候我们就要使用close()函数。 f.close()当我们需要读取文件的内容的时候,我们就要用到read()函数:f = open("hello.txt")print f.read()如果想读取指定长度,可以使用read(长度)f = open("hello.txt")print f.read(8)如果想写入内容,就要用到write()函数格式: f.write(string)注意,要想写入,就需要打开模式设置成可以写入的才行,因为默认是只读所以这个时候调用write会报错f = open("hello.txt")f.write( "replace python");提示:Traceback (most recent call last): File "D:\Python27\Mytest\test.py", line 2, in f.write( "replace python");IOError: File not open for writing 所以改成 f = open("hello.txt","w+")f.write( "replace python");f.close()如果需要写入多次只需要多次调用write函数即可,多行的话需要字符串后跟上转义符"\n",表示换行f.write( "replace python1\n");之前我们使用过read(长度),如果这时候再调用read()会是什么效果? 我们先把hello.txt改成: replace python1replace python2replace python3replace python4代码如下:f = open("hello.txt")print f.read(10)print ""print f.read()f.close()结果replace python1replace python2replace python3replace python4第二个read是接着之前的内容读取的,如果想输出全部内容,就需要重新定位。查看当前位置可以使用tell() 移动当前位置可以使用seek(offset [,from]),Offset变量表示要移动的字节数,From变量指定开始移动字节的参考位置 例如: f = open("hello.txt")print f.read(10)print "当前位置",f.tell()f.seek(0,0) #当前位置设置成开头print f.read()f.close()结果:replace py当前位置 10replace python1replace python2replace python3replace python4文件的删除和重命名 这2个操作,需要带入os模块 重命名使用rename(),该函数需要两个参数,当前的文件名和新文件名。删除使用remove(),该方法需要一个参数,文件名。 例如: import osos.rename( "test1.txt", "test2.txt" )import osos.remove("test2.txt")我们能对文件操作,那么使用python同样可以对文件夹操作,os模块提供了函数例如: import os# 创建目录testdiros.mkdir("testdir")# 进入testdir目录os.chdir("testdir")# 查看testdir路径print os.getcwd()输出:D:\Python27\Mytest\testdir那么我们可以根据这个路径删除目录:import osos.rmdir("D:/Python27\Mytest/testdir")注意斜杠和反斜杠哦 |
CopyRight 2018-2019 实验室设备网 版权所有 |