python3之File文件方法
1、读写文件
open()将会返回一个file对象,基本语法:
open(filename,mode)
filename:是一个包含了访问的文件名称的路径字符串
mode:决定了打开文件的模式:只读,写入,追加等,默认文件访问模式为只读(r)
不同模式打开文件的列表:
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 python\n'
- >>> file.readline()
- 'hello python\n'
- >>> 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/bash\nbin:x:1:1:bin:/bin:/sbin/nologin\ndaemon:x:2:2:daemon:/sbin:/sbin/nologin\nadm:x:3:4:adm:/var/adm:/sbin/nologin\nlp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\nsync:x:5:0:sync:/sbin:/bin/sync\nshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown\nhalt:x:7:0:halt:/sbin:/sbin/halt\nmail:x:8:12:mail:/var/spool/mail:/sbin/nologin\nuucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin\noperator:x:11:0:operator:/root:/sbin/nologin\ngames:x:12:100:games:/usr/games:/sbin/nologin\ngopher:x:13:30:gopher:/var/gopher:/sbin/nologin\nftp:x:14:50:FTP User:/var/ftp:/sbin/nologin\nnobody:x:99:99:Nobody:/:/sbin/nologin\ndbus:x:81:81:System message bus:/:/sbin/nologin\nvcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin\nabrt:x:173:173::/etc/abrt:/sbin/nologin\nhaldaemon:x:68:68:HAL daemon:/:/sbin/nologin\nntp:x:38:38::/etc/ntp:/sbin/nologin\nsaslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin\npostfix:x:89:89::/var/spool/postfix:/sbin/nologin\nsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin\ntcpdump:x:72:72::/:/sbin/nologin\nvmail:x:5000:5000::/home/vmail:/sbin/nologin\napache:x:48:48:Apache:/var/www:/sbin/nologin\nmysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash\nilanni:x:5001:5001::/home/ilanni:/bin/bash\ndovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin\ndovenull:x:498:499:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin\n"
- >>> f.close()
f.readline():会从文件中读取单独的一行,换行符为“\n”,如果返回一个空字符串说明已经读到最后一行
- >>> f = open('/etc/passwd','r')
- >>> f.readline() #读取一行的内容
- 'root:x:0:0:root:/root:/bin/bash\n'
- >>> f.readline()
- 'bin:x:1:1:bin:/bin:/sbin/nologin\n'
- >>> f.readline()
- 'daemon:x:2:2:daemon:/sbin:/sbin/nologin\n'
- >>> f.close()
f.readlines():将会以列表的形式返回该文件中包含的所有行
- >>> f = open('/etc/passwd','r')
- >>> f.readlines() #读取所有行
- ['root:x:0:0:root:/root:/bin/bash\n', 'bin:x:1:1:bin:/bin:/sbin/nologin\n', 'daemon:x:2:2:daemon:/sbin:/sbin/nologin\n', 'adm:x:3:4:adm:/var/adm:/sbin/nologin\n', 'lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\n', 'sync:x:5:0:sync:/sbin:/bin/sync\n', 'shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown\n', 'halt:x:7:0:halt:/sbin:/sbin/halt\n', 'mail:x:8:12:mail:/var/spool/mail:/sbin/nologin\n', 'uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin\n', 'operator:x:11:0:operator:/root:/sbin/nologin\n', 'games:x:12:100:games:/usr/games:/sbin/nologin\n', 'gopher:x:13:30:gopher:/var/gopher:/sbin/nologin\n', 'ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin\n', 'nobody:x:99:99:Nobody:/:/sbin/nologin\n', 'dbus:x:81:81:System message bus:/:/sbin/nologin\n', 'vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin\n', 'abrt:x:173:173::/etc/abrt:/sbin/nologin\n', 'haldaemon:x:68:68:HAL daemon:/:/sbin/nologin\n', 'ntp:x:38:38::/etc/ntp:/sbin/nologin\n', 'saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin\n', 'postfix:x:89:89::/var/spool/postfix:/sbin/nologin\n', 'sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin\n', 'tcpdump:x:72:72::/:/sbin/nologin\n', 'vmail:x:5000:5000::/home/vmail:/sbin/nologin\n', 'apache:x:48:48:Apache:/var/www:/sbin/nologin\n', 'mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash\n', 'ilanni:x:5001:5001::/home/ilanni:/bin/bash\n', 'dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin\n', "dovenull:x:498:499:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin\n"]
- >>> f.seek(0) #跳指针到开头
- 0
- >>> f.readlines(9) #指定参数读取行
- ['root:x:0:0:root:/root:/bin/bash\n']
- >>> f.readlines(9)
- ['bin:x:1:1:bin:/bin:/sbin/nologin\n']
- >>> f.readlines(9)
- ['daemon:x:2:2:daemon:/sbin:/sbin/nologin\n']
- >>> f.readlines(10)
- ['adm:x:3:4:adm:/var/adm:/sbin/nologin\n']
- >>> f.readlines(1)
- ['lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\n']
- >>> f.readlines()
- ['sync:x:5:0:sync:/sbin:/bin/sync\n', 'shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown\n', 'halt:x:7:0:halt:/sbin:/sbin/halt\n', 'mail:x:8:12:mail:/var/spool/mail:/sbin/nologin\n', 'uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin\n', 'operator:x:11:0:operator:/root:/sbin/nologin\n', 'games:x:12:100:games:/usr/games:/sbin/nologin\n', 'gopher:x:13:30:gopher:/var/gopher:/sbin/nologin\n', 'ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin\n', 'nobody:x:99:99:Nobody:/:/sbin/nologin\n', 'dbus:x:81:81:System message bus:/:/sbin/nologin\n', 'vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin\n', 'abrt:x:173:173::/etc/abrt:/sbin/nologin\n', 'haldaemon:x:68:68:HAL daemon:/:/sbin/nologin\n', 'ntp:x:38:38::/etc/ntp:/sbin/nologin\n', 'saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin\n', 'postfix:x:89:89::/var/spool/postfix:/sbin/nologin\n', 'sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin\n', 'tcpdump:x:72:72::/:/sbin/nologin\n', 'vmail:x:5000:5000::/home/vmail:/sbin/nologin\n', 'apache:x:48:48:Apache:/var/www:/sbin/nologin\n', 'mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash\n', 'ilanni:x:5001:5001::/home/ilanni:/bin/bash\n', 'dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin\n', "dovenull:x:498:499:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin\n"]
- >>>
f.write():将内容写入到文件中,然后返回写入的字符数
- >>> f = open('test2.py','w')
- >>> 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()
- ['aaa\n', 'bbb\n', 'ccc\n', 'ddd\n', 'eee\n']
- >>> f.tell()
- 20
f.clise():关闭文件并释放系统的资源。
- >>> f = open('test3.py','r')
- >>> f.readlines()
- ['aaa\n', 'bbb\n', 'ccc\n', 'ddd\n', 'eee\n']
- >>> f.close() #关闭文件
python3之File文件方法的更多相关文章
- Python学习(16)File(文件)方法
Python File(文件) 方法 file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 序号 方法及描述 1 file.close() 关闭文件.关闭后文件不能再进行读 ...
- ArcGIS加载数据中常用的File文件方法总结
在介绍ArcGIS中各种数据的打开方法时,我们用到了许多对于File文件的操作,在此做一个常用用法的总结.例如, 介绍ArcGIS中各种数据的打开方法——mxd(地图文档) 以方法一为例:运用Load ...
- python019 Python3 File(文件) 方法
file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 序号 方法及描述 1 file.close() 关闭文件.关闭后文件不能再进行读写操作. 2 file.flush() ...
- 吴裕雄--天生自然python学习笔记:Python3 File(文件) 方法
open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() ...
- 吴裕雄--天生自然 PYTHON3开发学习:File(文件) 方法
# 打开文件 fo = open("runoob.txt", "wb") print("文件名为: ", fo.name) # 关闭文件 f ...
- Python File(文件) 方法
file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 序号 方法及描述 1 file.close() 关闭文件.关闭后文件不能再进行读写操作. 2 file.flush() ...
- 020_Python3 File(文件) 方法
1.open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open ...
- python3文件方法
Python3 File(文件) 方法 需要注意:打开文件的 mode 参数注意区别文件指针位置 rw/rw+ 文件指针是在文件的开头,w任何模式都是会删除之前原有的内容的, a是追加且,打开文件指针 ...
- Java文件操作二:File文件的方法
一.文件的判断方法 判断方法 .boolean canExecute()判断文件是否可执行 .boolean canRead()判断文件是否可读 .boolean canWrite() 判断文件是否可 ...
随机推荐
- public,private,protected,以及不写时的差别
作用域public,private.protected.以及不写时的差别 这四个作用域的可见范围例如以下表所看到的. 说明:假设在修饰的元素上面没有写不论什么訪问修饰符,则表示friendly.不使用 ...
- hdu 2209 bfs+状压
http://acm.hdu.edu.cn/showproblem.php?pid=2209 不知为啥有种直觉.会出状压+搜索的题,刷几道先 简单的BFS.状压表示牌的状态, //#pragma co ...
- JAVA入门[10]-mybatis分页查询
1.添加分页插件 在mybatis-generator-config.xml添加plugin节点: <plugin type="org.mybatis.generator.plugin ...
- 在Docker中运行asp.net core 跨平台应用程序
概述 Docker已经热了有一两年了,而且我相信这不是一个昙花一现的技术,而是一个将深远影响我们日后开发和部署.运营应用系统的一种创新(很多人将其作为devops的一种非常重要的基石).学习docke ...
- TP3.2.3 接入银联支付
TP3.2.3 接入银联支付 项目接入银联支付的过程, 在此记录下,希望能帮助开发盆友平坑. 银联SKD链接:https://open.unionpay.com/ajweb/product/newPr ...
- 应用activeMQ消息中间件同步索引库
mq是一个消息服务器: 安装包内置了tomcat,直接登录访问,登录:http://ip:8161/admin/ (相当于dubbo的moniter监控中心) admin admin传统串行化, ...
- mongodb副本集配置
需要用到mongodb的时候单个实例肯定是不行的,挂了怎么办,那然后呢,跟mysql一样搞主从备份吗,是可以的mongodb这么弄,不过官网已经不推荐了这么干了,推荐使用副本集的模式,然后数据再大一点 ...
- JMeter接口HTTP请求implementation不选java会报错解决方法
1.若不对c参数和d参数进行URL编码则需要选择implementation为java: 2.若想不设implementation值,则需进行c参数d参数URLEncoding import java ...
- 【python】字符串
>>> str1="welcom to China">>> str1[2:4]'lc'>>> str1[7]'t'>&g ...
- TCP/IP----基本知识
就以这篇文章为起点,开始自己的学习计算机网络之路.这些仅是我个人之言,如有差错,希望读者能够逐一指出,在下不胜感激. 首先,我们需要知道一些关于网络的基本知识. 网络中的关系大多为拓扑结构.那么,何为 ...