返回顶部
首页 > 资讯 > 后端开发 > Python >Python如何实用File文件的实现
  • 869
分享到

Python如何实用File文件的实现

PythonFile文件PythonFile 2023-02-13 12:02:55 869人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1、读写文件2、文件对象的方法1、读写文件 open()将会返回一个file对象,基本语法: open(filename,mode) ilename:是一个包含了访问的文件名称的

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 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')  #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()
['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()  #关闭文件

到此这篇关于Python如何实用File文件的实现的文章就介绍到这了,更多相关Python File文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python如何实用File文件的实现

本文链接: https://lsjlt.com/news/195756.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python如何实用File文件的实现
    目录1、读写文件2、文件对象的方法1、读写文件 open()将会返回一个file对象,基本语法: open(filename,mode) ilename:是一个包含了访问的文件名称的...
    99+
    2023-02-13
    Python File文件 Python File
  • 在Java如何使用File类实现遍历文件
    本篇文章为大家展示了在Java如何使用File类实现遍历文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 构造函数File(String args0)//使用一个表示文件或目录的路径的字符串创...
    99+
    2023-05-31
    java file 遍历
  • Python如何实现文件的读取
    这篇文章将为大家详细讲解有关Python如何实现文件的读取,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一·Numpy库中操作文件1.操作csv文件import numpy as&nb...
    99+
    2023-06-22
  • HTML5中如何实现type=file文件上传功能
    这篇文章将为大家详细讲解有关HTML5中如何实现type=file文件上传功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、语法<input name=&quo...
    99+
    2024-04-02
  • 如何实现Python文件去重
    这篇文章将为大家详细讲解有关如何实现Python文件去重,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码ing导出的文件都是保存在同一文件夹下的,格式也相同。然后,上网查了下 filecmp.cmp()...
    99+
    2023-06-20
  • 如何使用file标签实现多图文件上传预览
    这篇文章主要介绍如何使用file标签实现多图文件上传预览,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!js 代码:<script>   //下面用于多...
    99+
    2024-04-02
  • Python如何import文件夹下的文件(实现方法)
    Python的import包含文件功能就跟PHP的include类似,但更确切的说应该更像是PHP中的require,因为Python里的import只要目标不存在就报错程序无法往下执行。要包含目录里的文件...
    99+
    2022-06-04
    文件夹 文件 方法
  • Python如何实现破解zip文件
    小编给大家分享一下Python如何实现破解zip文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、思路爆密码的思路其实都大同小异:无非就是字典爆破,就看你是有...
    99+
    2023-06-14
  • Python如何实现文件夹操作
    本文小编为大家详细介绍“Python如何实现文件夹操作”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现文件夹操作”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、文件操作1.1 文件常规操作操...
    99+
    2023-06-30
  • Java文件操作类 File实现代码
    1.概述  对于文件系统的访问是每个语言必须的,java提供了File类来完成对文件或者目录的创建,重命名,删除,文件列表的操作以及判读是否存在。2.对于文件/目录的操作  操作内容包括:    1:创建对象。    2:判断是否是目录/文...
    99+
    2023-05-31
    java 操作类 file
  • Python 如何实现文件自动去重
    Python 文件自动去重 平日里一来无聊,二来手巧,果然下载了好多无(luan)比(qi)珍(ba)贵(zao)的资料,搞得我小小的硬盘(已经扩到6T了)捉襟见肘, 有次无意间,发...
    99+
    2024-04-02
  • Python PyQt5如何实现文件拷贝器
    这篇文章将为大家详细讲解有关Python PyQt5如何实现文件拷贝器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。UI设置def ui_init(self):   ...
    99+
    2023-06-25
  • python读写文件with open如何实现
    小编给大家分享一下python读写文件with open如何实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、案例一(读取)首先创建一个我们要读写的...
    99+
    2023-06-25
  • Python如何实现HTTP文件重定向?
    HTTP文件重定向是指在HTTP协议中,服务器返回的响应状态码为3xx时,浏览器会自动跳转到新的URL地址。这种机制在网站开发中非常常见,例如当我们访问一个网站时,可能会自动跳转到登录页面、注册页面或者其他页面。在Python中,实现HT...
    99+
    2023-08-27
    http 文件 重定向
  • jquery-file-upload如何实现文件上传带进度条效果
    这篇文章主要为大家展示了“jquery-file-upload如何实现文件上传带进度条效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jquery-file-...
    99+
    2024-04-02
  • Python如何实现逐行读取文本文件
    目录Python 中的 open() 函数是什么文件名和正确路径open() 中的可选模式参数Python 中 open() 函数的其他参数Python 中的 read() 方法Py...
    99+
    2024-04-02
  • 如何在Python中实现数组文件的实时更新?
    在Python中,实现数组文件的实时更新是非常常见的需求。在本文中,我们将介绍如何使用Python中的一些常见工具和技巧来实现这个功能。 数组文件的实时更新通常用于一些需要实时监控数据变化的应用场景,例如股票市场、气象预报和实时传感器数据等...
    99+
    2023-07-06
    实时 数组 文件
  • 用python实现文件备份
    目录1、需求2、步骤3、代码实现(1)接收用户输入目标文件名(2)规划备份文件名(3)备份文件写入数据(4)思考(5)完整编码4、再来一个小练习总结1、需求 用户输入当前目录下任意文...
    99+
    2024-04-02
  • 如何使用Python文件响应框架实现高效的文件操作?
    如何使用Python文件响应框架实现高效的文件操作? 在日常的开发工作中,文件操作是一个非常常见的任务。Python作为一门高级编程语言,提供了许多方便的文件操作函数和模块。其中,文件响应框架是一个非常强大的工具,可以帮助我们高效地处理大量...
    99+
    2023-07-20
    响应 文件 框架
  • 如何使用Python实现实时监控数组文件变化?
    在日常的编程工作中,我们经常需要监控某些文件的变化,并且在文件发生变化时能够及时作出相应的处理。在本文中,我们将介绍如何使用Python实现实时监控数组文件变化,并且通过演示代码来帮助您更好地理解。 使用Python的watchdog模...
    99+
    2023-07-05
    实时 数组 文件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作