Python之路-文件操作(py3)
文件操作的基本步骤:
1.打开文件:f=open('filename'),with open('filename') as f
2.操作文件:增,删,改,查
3.关闭文件:f.close
打开文件
python中打开文件的函数为open('filename',mode='r',encode='None'),open函数默认返回文件的句柄,我们可以根据句柄来对文件进行增,删,改,查的操作。将句柄赋给我们定义的变量,假设我们定义变量为f,则f=open('filename',mode='r',encode='utf-8') 或者with open('filename') as f。
注意点:
1.python解释器打开文件时,是对硬盘进行操作,需要内核态才可以操作硬盘,故此时python解释器是调用操作系统的文件读取接口。windows中文版本默认使用GBK编码表,linux默认使用utf-8,所有如果操作的文件在windows下,非GBK编码的,需要在open函数中声明编码类型,使操作系统运用相应的编码规则进行解码读取,防止串码,乱码现象。
2.open主要有三种模式,读(r),写(w),追加(a),其中,默认为读模式。各个模式的详解,见下文。
关闭文件
关闭文件有两组方式:1.使用f.close() ,f为open返回的句柄赋值的变量名。 2.程序结束后,自动关闭。第二个方法容易造成文件写操作时,数据的丢失。原因是写数据时,数据会先保存在内存中,文件关闭时才会写入硬盘,此时如果文件未关闭,软件因为异常崩溃,导致内存中的数据丢失,且未写入硬盘中。作为第二种关闭方法的优化,是使用:with open('filename') as f 。with会创建一个程序块,将文件操作置于with程序块下,这样with控制块结束,文件也会自动关闭。
文件操作
查(文件已读模式打开,或者w+,a+模式):
f.read():读取文件内容,默认为读取全部(返回字符串类型),可在括号内指定读取的字节(py2)或字符数(py3)。在windows下,读取非GBK格式文件,需要加编码参数encoding。
f.readline():一行一行的读取文件内容。
f.readlines():读取文件的全部内容,以列表的形式返回。一行为列表中的一个元素。
f:以迭代的方式读取文件,优化了内存使用。
f.seek():移动光标位置,f.seek(offset[, whence]),whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。whence为1或者2时,文件需要以bytes的方式打开,且定义的位移单位为字节。
f.tell():返回当前光标所在的位置
增:
f.write():写数据进文件
f.flush():将内存中的数据刷新到硬盘上
改,删:
由于文件在磁盘中的存储都是固定的扇区,如果要对文件进行更改,只能再新建一个文件,进行修改和删除的操作。
文件打开模式
r+,w+,a+模式:
r为只读模式,以该模式打开文件,则只能进行读操作,不能写。r+则是读写模式,先读取文件内容,后写入新的内容,所以使用该模式修改文件,则修改的内容会添加到文件的末尾。
w为写模式,w会覆盖掉原先的文本内容,重新写入数据。w+为写读模式,先写后读。所以需要先写数据后,利用seek移动光标位置再读取数据 。w+的特性也导致了文件内容会被覆盖。
a为追加写模式,会将内容追加到文件模式。a+是先追加后读,所以加的内容会在文件末尾,读取文件时也需要用seek来移动光标位置再读取。
示例:
下面会文件内容
- global
- log 127.0.0.1 local2
- daemon
- maxconn
- log 127.0.0.1 local2 info
- defaults
- log global
- mode http
- timeout connect 5000ms
- timeout client 50000ms
- timeout server 50000ms
- option dontlognull
- listen stats :
- stats enable
- stats uri /admin
- stats auth admin:
- frontend oldboy.org
- bind 0.0.0.0:
- option httplog
- option httpclose
- option forwardfor
- log global
- acl www hdr_reg(host) -i www.oldboy.org
- use_backend www.oldboy.org if www
- backend www.oldboy.org
- server 100.1.7.9 100.1.7.9 weight maxconn
- backend www.oldboy2.org
- server 100.1.7.10 100.1.7.9 weight maxconn
- server 100.1.7.11 100.1.7.9 weight maxconn
- server 100.1.7.12 100.1.7.9 weight maxconn
- backend www.oldboy3.org
- server 100.1.3.9 100.1.7.9 weight maxconn
- server 100.1.3.10 100.1.7.9 weight maxconn
对文件进行读操作,输入域名,查询域名下的对应配置内容
- flag=False
- contain_list=[]
- domain=input("请输入域名:").strip()
- with open('haproxy.conf') as f:
- for line in f:
- if line.startswith('backend') and line.count(domain):
- flag=True
- continue
- elif line.startswith('backend') and flag:
- flag=False
- elif flag:
- contain_list.append(line.strip())
- for i in contain_list:
- print(i)
Python之路-文件操作(py3)的更多相关文章
- Python之路----文件操作
文件操作 1.能调用方法的一定是对象,比如数值.字符串.列表.元组.字典,甚至文件也是对象,Python中一切皆为对象. str1 = 'hello' str2 = 'world' str3 = ' ...
- python之路——文件操作
阅读目录 初窥文件操作基本流程 文件编码 文件的打开模式 文件内的光标移动 with上下文管理 文件的修改 练习 回到顶部 初窥文件操作基本流程 计算机系统分为:计算机硬件,操作系统,应用程序三部分. ...
- 百万年薪python之路 -- 文件操作
1.文件操作: f = open("zcy.txt" , mode="r" , encoding="UTF-8") open() 打开 第一 ...
- 百万年薪python之路 -- 文件操作练习
1.有如下文件,a1.txt,里面的内容为: 老男孩是最好的学校, 全心全意为学生服务, 只为学生未来,不为牟利. 我说的都是真的.哈哈 分别完成以下的功能: a,将原文件全部读出来并打印. with ...
- Python修炼之路-文件操作
Python编程之文件操作 文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 每次文件打开.读取信息时,Python自动记录所达到的位置,好比一个书签,之后每一次 ...
- python os&shutil 文件操作
python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...
- python 历险记(三)— python 的常用文件操作
目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 o ...
- Python的高级文件操作(shutil模块)
Python的高级文件操作(shutil模块) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让我们用python的文件处理来进行文件拷贝,想必很多小伙伴的思路是:使用打开2个 ...
- Python入门篇-文件操作
Python入门篇-文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件IO常用操作 open:打开 read:读取 write:写入 close:关闭 readlin ...
随机推荐
- word之个人设置
1.视图设置.五种视图中一般都是用“页面视图”.标尺和导航窗口都需要显示出来,方便操作,显示比例就用最真实的100%比例. 2.设置文件自动保存时间间隔和位置 3.word段落设置,不允许西文单词中间 ...
- https学习笔记三----OpenSSL生成root CA及签发证书
在https学习笔记二,已经弄清了数字证书的概念,组成和在https连接过程中,客户端是如何验证服务器端的证书的.这一章,主要介绍下如何使用openssl库来创建key file,以及生成root C ...
- Python之包管理
1.setup.py from distutils.core import setup setup(name='Distutils', version='1.0', description='Pyth ...
- TheFatRat一般使用
利用它生成后门 第一种通常情况下速度很快,较稳定,但免杀效果极差 推荐使用第二种 免杀效果好,如下图 第一种是最新的模块,较免杀效果极好.还可伪造图标 第二种是旧的
- property装饰器以及多态
property是一种特殊的属性 访问它时执行一段功能然后返回值 class People: def __init__(self, name): self.__name = name @propert ...
- SQL Prompt snippets
SQL Prompt snippets https://github.com/gvohra/sqlpromptsnippets
- scrapy item pipeline
item pipeline process_item(self, item, spider) #这个是所有pipeline都必须要有的方法在这个方法下再继续编辑具体怎么处理 另可以添加别的方法 ope ...
- Java连接数据库 #06# SQL与代码分离(精化版本)
索引 DAO层依赖关系草图 应用示例 接Java连接数据库#05#,对代码进行改进. DAO层依赖关系草图 应用示例(只需3步!) 1.首先定义接口类: package org.sample.shop ...
- pip使用豆瓣的镜像源
豆瓣镜像地址:https://pypi.douban.com/simple/ 虽然用easy_install和pip来安装第三方库很方便 它们的原理其实就是从Python的官方源pypi.python ...
- i.MX6UL -- PWM用户空间使用方法【转】
本文转载自:https://blog.csdn.net/u014486599/article/details/53010114 i.MX6UL -- PWM用户空间使用方法 开发平台: 珠海鼎芯D51 ...