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文件方法的更多相关文章

  1. Python学习(16)File(文件)方法

    Python File(文件) 方法 file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 序号 方法及描述 1 file.close() 关闭文件.关闭后文件不能再进行读 ...

  2. ArcGIS加载数据中常用的File文件方法总结

    在介绍ArcGIS中各种数据的打开方法时,我们用到了许多对于File文件的操作,在此做一个常用用法的总结.例如, 介绍ArcGIS中各种数据的打开方法——mxd(地图文档) 以方法一为例:运用Load ...

  3. python019 Python3 File(文件) 方法

    file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 序号 方法及描述 1 file.close() 关闭文件.关闭后文件不能再进行读写操作. 2 file.flush() ...

  4. 吴裕雄--天生自然python学习笔记:Python3 File(文件) 方法

    open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() ...

  5. 吴裕雄--天生自然 PYTHON3开发学习:File(文件) 方法

    # 打开文件 fo = open("runoob.txt", "wb") print("文件名为: ", fo.name) # 关闭文件 f ...

  6. Python File(文件) 方法

    file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 序号 方法及描述 1 file.close() 关闭文件.关闭后文件不能再进行读写操作. 2 file.flush() ...

  7. 020_Python3 File(文件) 方法

    1.open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open ...

  8. python3文件方法

    Python3 File(文件) 方法 需要注意:打开文件的 mode 参数注意区别文件指针位置 rw/rw+ 文件指针是在文件的开头,w任何模式都是会删除之前原有的内容的, a是追加且,打开文件指针 ...

  9. Java文件操作二:File文件的方法

    一.文件的判断方法 判断方法 .boolean canExecute()判断文件是否可执行 .boolean canRead()判断文件是否可读 .boolean canWrite() 判断文件是否可 ...

随机推荐

  1. Android中相机和相冊使用分析

    Android中相机和相冊使用分析 欢迎转载,但请尊重原创(文章来自不易,转载请标明转载出处,谢谢) 在手机应用程序中,使用自带的相机拍照以及相冊选择喜欢的图片是最常见只是的用户需求,那么怎么合理使用 ...

  2. HDOJ 4251 The Famous ICPC Team Again

    划分树水题..... The Famous ICPC Team Again Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 3276 ...

  3. Uber的成功绝非偶然

    拥有打造一个初创企业并将其做强做大的梦想并不是难事,困难的是怎样将该梦想变成现实.娱乐媒体行业经常将企业成功的过程进行美化,干净利落的将企业成功前所经历的艰苦时刻进行大刀阔斧的剪裁,让其刚好可以达到拍 ...

  4. Asp.net mvc 知多少(二)

    本系列主要翻译自<ASP.NET MVC Interview Questions and Answers >- By Shailendra Chauhan,想看英文原版的可访问http:/ ...

  5. anaconda不能安装python的包问题

    在点了n次,重启应用多次之后,安装包(apply)之后还是没有反应,依然心平气和的我突然想到用管理员模式打开,结果就可以愉快的装包了,估计创建新的环境也是要管理员打开的.

  6. CentOS 7 学习(一) 配置LAMP和Nginx

    CentOS 7 学习(一) 配置LAMP和Nginx CentOS是RedHat Linux企业版的代码编译版本,属于比较通用的服务器Linux版本,据说Ubuntu Server更通用,呵呵,不过 ...

  7. 《程序设计语言——实践之路(英文第三版)》【PDF】下载

    <程序设计语言--实践之路(英文第三版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382234 内容简介 <程序设计语 ...

  8. Xamarin Android 中Acitvity如何传递数据

    在xamarin android的开发中,activity传递数据非常常见,下面我也来记一下在android中activity之间传递数据的几种方式, Xamarin Android中Activity ...

  9. AntData.ORM框架 之 DotnetCore

    开源地址:https://github.com/yuzd/AntData.ORM   CodeGen使用请参考http://www.cnblogs.com/yudongdong/p/6421312.h ...

  10. Thinkphp开启调试模式

    3.0版本的调试模式开启,必须在项目入口文件中添加常量APP_DEBUG定义,如下: define('APP_DEBUG',True); // 开启调试模式 开启调试模式后,你可能感觉不到什么变化,不 ...