概述
1、读写文件
open()将会返回一个file对象,基本语法:
open(filename,mode)
ilename:是一个包含了访问的文件名称的路径字符串
mode:决定了打开文件的模式:只读,写入,追加等,默认文件访问模式为只读®
不同模式打开文件的列表:
- r:以只读的方式打开文件,文件的指针将会放在文件的开头,为默认模式
- rb:以二进制格式打开一个文件用于只读,文件指针会在文件的开头
- r+:打开一个文件用于读写,文件指针将会在文件的开头
- rb+:以二进制格式打开一个文件用于读写,文件指针会放在文件的开头
- w:打开一个文件用于写入,如果该文件已存在则将会覆盖文件,如果不存在则创建新文件
- wb:以二进制打开一个文件用于写入
- w+:打开一个文件用于读写
- wb+:以二进制格式打开一个文件用于读写,如果文件存在则覆盖,如果不存在则创建新文件
- a:打开一个文件用于追加内容,如果文件已存在,文件指针会放在文件的结尾,如果不存在则创建新文件进行写入
- ab:以二进制格式打开一个文件用于追加写入
- a+:打开一个文件用于读写,如果该文件已存在,文件指针会放在结尾,文件打开时会是追加模式,该文件不存在则创建新文件
- ab+:以二进制格式打开一个文件用于追加。
>>> file = open('test1.py','w') #以写模式打开文件
>>> file.write('hello python')
12
>>> file.flush() #刷新文件内容
>>> file.read() #文件不可读
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
io.UnsupportedOperation: not readable
>>> file = open('test1.py','r') #以只读打开文件
>>> file.readline() #读取一行文件内容
'hello pythonn'
>>> file.readline()
'hello pythonn'
>>> file.readline()
''
>>> file.close() #关闭文件
2、文件对象的方法
f.read():读取一个文件的内容
>>> f = open('/etc/passwd','r')>>> f.read(5) #指定字节数读取 'root:'>>> f.read() #读取文件全部内容
"root:x:0:0:root:/root:/bin/bashnbin:x:1:1:bin:/bin:/sbin/nologinndaemon:x:2:2:daemon:/sbin:/sbin/nologinnadm:x:3:4:adm:/var/adm:/sbin/nologinnlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinnsync:x:5:0:sync:/sbin:/bin/syncnshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownnhalt:x:7:0:halt:/sbin:/sbin/haltnmail:x:8:12:mail:/var/spool/mail:/sbin/nologinnuucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologinnoperator:x:11:0:operator:/root:/sbin/nologinngames:x:12:100:games:/usr/games:/sbin/nologinngopher:x:13:30:gopher:/var/gopher:/sbin/nologinnftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnnobody:x:99:99:Nobody:/:/sbin/nologinndbus:x:81:81:System message bus:/:/sbin/nologinnvcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologinnabrt:x:173:173::/etc/abrt:/sbin/nologinnhaldaemon:x:68:68:HAL daemon:/:/sbin/nologinnntp:x:38:38::/etc/ntp:/sbin/nologinnsaslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologinnpostfix:x:89:89::/var/spool/postfix:/sbin/nologinnsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinntcpdump:x:72:72::/:/sbin/nologinnvmail:x:5000:5000::/home/vmail:/sbin/nologinnapache:x:48:48:Apache:/var/www:/sbin/nologinnmysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bashnilanni:x:5001:5001::/home/ilanni:/bin/bashndovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologinndovenull:x:498:499:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologinn"
>>> f.close()
f.readline():会从文件中读取单独的一行,换行符为“n”,如果返回一个空字符串说明已经读到最后一行
>>> f = open('/etc/passwd','r')
>>> f.readline() #读取一行的内容
'root:x:0:0:root:/root:/bin/bashn'
>>> f.readline()
'bin:x:1:1:bin:/bin:/sbin/nologinn'
>>> f.readline()
'daemon:x:2:2:daemon:/sbin:/sbin/nologinn'
>>> f.close()
f.readlines():将会以列表的形式返回该文件中包含的所有行
>>> f = open('/etc/passwd','r')
>>> f.readlines() #读取所有行
['root:x:0:0:root:/root:/bin/bashn', 'bin:x:1:1:bin:/bin:/sbin/nologinn', 'daemon:x:2:2:daemon:/sbin:/sbin/nologinn', 'adm:x:3:4:adm:/var/adm:/sbin/nologinn', 'lp:x:4:7:lp:/var/spool/lpd:/sbin/nologinn', 'sync:x:5:0:sync:/sbin:/bin/syncn', 'shutdown:x:6:0:shutdown:/sbin:/sbin/shutdownn', 'halt:x:7:0:halt:/sbin:/sbin/haltn', 'mail:x:8:12:mail:/var/spool/mail:/sbin/nologinn', 'uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologinn', 'operator:x:11:0:operator:/root:/sbin/nologinn', 'games:x:12:100:games:/usr/games:/sbin/nologinn', 'gopher:x:13:30:gopher:/var/gopher:/sbin/nologinn', 'ftp:x:14:50:FTP User:/var/ftp:/sbin/nologinn', 'nobody:x:99:99:Nobody:/:/sbin/nologinn', 'dbus:x:81:81:System message bus:/:/sbin/nologinn', 'vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologinn', 'abrt:x:173:173::/etc/abrt:/sbin/nologinn', 'haldaemon:x:68:68:HAL daemon:/:/sbin/nologinn', 'ntp:x:38:38::/etc/ntp:/sbin/nologinn', 'saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologinn', 'postfix:x:89:89::/var/spool/postfix:/sbin/nologinn', 'sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinn', 'tcpdump:x:72:72::/:/sbin/nologinn', 'vmail:x:5000:5000::/home/vmail:/sbin/nologinn', 'apache:x:48:48:Apache:/var/www:/sbin/nologinn', 'mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bashn', 'ilanni:x:5001:5001::/home/ilanni:/bin/bashn', 'dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologinn', "dovenull:x:498:499:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologinn"]
>>> f.seek(0) #跳指针到开头
0
>>> f.readlines(9) #指定参数读取行
['root:x:0:0:root:/root:/bin/bashn']
>>> f.readlines(9)
['bin:x:1:1:bin:/bin:/sbin/nologinn']
>>> f.readlines(9)
['daemon:x:2:2:daemon:/sbin:/sbin/nologinn']
>>> f.readlines(10)
['adm:x:3:4:adm:/var/adm:/sbin/nologinn']
>>> f.readlines(1)
['lp:x:4:7:lp:/var/spool/lpd:/sbin/nologinn']
>>> f.readlines()
['sync:x:5:0:sync:/sbin:/bin/syncn', 'shutdown:x:6:0:shutdown:/sbin:/sbin/shutdownn', 'halt:x:7:0:halt:/sbin:/sbin/haltn', 'mail:x:8:12:mail:/var/spool/mail:/sbin/nologinn', 'uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologinn', 'operator:x:11:0:operator:/root:/sbin/nologinn', 'games:x:12:100:games:/usr/games:/sbin/nologinn', 'gopher:x:13:30:gopher:/var/gopher:/sbin/nologinn', 'ftp:x:14:50:FTP User:/var/ftp:/sbin/nologinn', 'nobody:x:99:99:Nobody:/:/sbin/nologinn', 'dbus:x:81:81:System message bus:/:/sbin/nologinn', 'vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologinn', 'abrt:x:173:173::/etc/abrt:/sbin/nologinn', 'haldaemon:x:68:68:HAL daemon:/:/sbin/nologinn', 'ntp:x:38:38::/etc/ntp:/sbin/nologinn', 'saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologinn', 'postfix:x:89:89::/var/spool/postfix:/sbin/nologinn', 'sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinn', 'tcpdump:x:72:72::/:/sbin/nologinn', 'vmail:x:5000:5000::/home/vmail:/sbin/nologinn', 'apache:x:48:48:Apache:/var/www:/sbin/nologinn', 'mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bashn', 'ilanni:x:5001:5001::/home/ilanni:/bin/bashn', 'dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologinn', "dovenull:x:498:499:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologinn"]
>>>
f.write():将内容写入到文件中,然后返回写入的字符数
>>> f = open('test2.py','w') #python学习交流群:309488165
>>> f.write('hello python') #写入内容
12
>>> libex = 'hhhhhhhhhhhhhh'
>>> f.write(libex) #按变量写入内容
14
>>> f.close() #关闭文件
>>>
[root@python day7]# cat test2.py #内容没有换行符
hello pythonhhhhhhhhhhhhhh[root@python day7]#
f.tell():返回文件对象当前所处的位置,它是从文件开头开始算起的字节数
>>> f = open('test2.py','r')
>>> f.tell() #指针当前位置
0
>>> f.readline() #读取一行文件后
'hello pythonhhhhhhhhhhhhhh'
>>> f.tell() #指针移动26字节数处
26
>>> f.close() #关闭文件
f.seek():改变当前文件指针的位置,f.seek(offset,from_what)
from_what的值,如果是0表示开头,如果是1表示当前位置,2表示文件的结尾:
seek(x,0):从文件首行首字符开始移动x个字符
seek(x,1):从当前为往后移动x个字符
seek(-x,2):从文件的结尾往前移动x个字符
from_what值默认为0,即文件开头。
>>> f = open('test3.py','a+')
>>> f.readlines()
[]
>>> f.seek(0) #开头
0
>>> f.readlines()
['aaan', 'bbbn', 'cccn', 'dddn', 'eeen']
>>> f.tell()
20
f.clise():关闭文件并释放系统的资源。
>>> f = open('test3.py','r')
>>> f.readlines()
['aaan', 'bbbn', 'cccn', 'dddn', 'eeen']
>>> f.close() #关闭文件
最后
以上就是孝顺百合为你收集整理的【Python教程】如何实用File文件的全部内容,希望文章能够帮你解决【Python教程】如何实用File文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复