Python入门篇-文件操作
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.文件IO常用操作
open:打开 read:读取 write:写入 close:关闭 readline:行读取 readlines:多行读取 seek:文件指针操作 tell:指针位置
二.基本操作
1>.打开操作
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ 5 #EMAIL:y1053419035@qq.com 6 7 """ 8 open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True) 9 打开一个文件,返回一个文件(流对象)和文件描述符。打开文件失败,则返回异常。 10 11 """ 12 13 f = open("passwd") #file对象,默认以只读方式打开文件,该文件必须存在,否则会抛出"FileNotFoundError"异常 14 print(f.read()) #d读取文件 15 f.close() #关闭文件 16 17 18 19 #"passwd"文件内容如下: 20 root:x:0:0:root:/root:/bin/bash 21 bin:x:1:1:bin:/bin:/sbin/nologin 22 daemon:x:2:2:daemon:/sbin:/sbin/nologin 23 adm:x:3:4:adm:/var/adm:/sbin/nologin 24 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 25 sync:x:5:0:sync:/sbin:/bin/sync 26 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 27 halt:x:7:0:halt:/sbin:/sbin/halt 28 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 29 operator:x:11:0:operator:/root:/sbin/nologin 30 games:x:12:100:games:/usr/games:/sbin/nologin 31 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 32 nobody:x:99:99:Nobody:/:/sbin/nologin 33 systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin 34 dbus:x:81:81:System message bus:/:/sbin/nologin 35 polkitd:x:999:998:User for polkitd:/:/sbin/nologin 36 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 37 postfix:x:89:89::/var/spool/postfix:/sbin/nologin 38 chrony:x:998:996::/var/lib/chrony:/sbin/nologin 39 yinzhengjie:x:1000:1002:yinzhengjie:/home/yinzhengjie:/bin/bash 40 apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin 41 tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin 42 zabbix:x:997:995:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin 43 mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash 44 python:x:1001:1001::/home/python:/bin/bash
2>.mode模式
描述字符 意义
r 缺省的(即如果没有指定mode模式,则默认以只读方式打开),表示只读打开,如果使用write方法,会抛异常。如果文件不存在,抛出"FileNotFoundError"异常。
w 只写打开,如果文件不存在直接创建,如果文件已经存在,则清空文件内容,如果读取则抛出异常。
x 创建并写入一个新文件,文件不存在,创建文件,并只写方式打开。
a 写入打开,如果文件存在,则追加。文件存在,只写打开,追加内容,文件不存在,则创建后,只写打开,追加内容。
b 二进制模式,字节流,将文件就按照字节理解,与字符编码无关。二进制模式操作时,字节操作使用bytes类型。
t 缺省的文本模式。字符流,将文件的字节按照某种字符编码理解,按照字符操作,open的默认mode就是rt。
+ 读写打开一个文件,给原来只读,只写方式打开提供缺省的读或者写能力。主要为r,w,a,x提供缺省的读写能力,但是文件获取依旧依照按照r,w,a,x字节的特征,+不能单独使用,可以任务它是为前面的模式字符做增强功能的。
#!/usr/bin/env python #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y1053419035@qq.com """ 文件操作中,最常用的操作就是读和写。 文件访问的模式有两种:文本模式和二进制模式。不同模式下,操作函数不尽相同,表现的结果也不一样。 打开或者要创建文件名。如果不指定路径,默认就是当前路径 """ f = open("passwd") #file对象,默认以只读方式打开文件,该文件必须存在,否则会抛出"FileNotFoundError"异常 print(f.readline()) #d读取文件 f.close() #关闭文件 print("*" * 20 + "我是分割线" + "*" * 20) f = open("passwd","r") f.write("abc") #这里会抛异常"io.UnsupportedOperation: not writable",因为我们是以只读方式打开,但是我们这里要进行写操作是不被允许的! f.close()