文件操作的基本步骤:

  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来移动光标位置再读取。

示例:

下面会文件内容

  1. global
  2. log 127.0.0.1 local2
  3. daemon
  4. maxconn
  5. log 127.0.0.1 local2 info
  6. defaults
  7. log global
  8. mode http
  9. timeout connect 5000ms
  10. timeout client 50000ms
  11. timeout server 50000ms
  12. option dontlognull
  13.  
  14. listen stats :
  15. stats enable
  16. stats uri /admin
  17. stats auth admin:
  18.  
  19. frontend oldboy.org
  20. bind 0.0.0.0:
  21. option httplog
  22. option httpclose
  23. option forwardfor
  24. log global
  25. acl www hdr_reg(host) -i www.oldboy.org
  26. use_backend www.oldboy.org if www
  27.  
  28. backend www.oldboy.org
  29. server 100.1.7.9 100.1.7.9 weight maxconn
  30.  
  31. backend www.oldboy2.org
  32. server 100.1.7.10 100.1.7.9 weight maxconn
  33. server 100.1.7.11 100.1.7.9 weight maxconn
  34. server 100.1.7.12 100.1.7.9 weight maxconn
  35.  
  36. backend www.oldboy3.org
  37. server 100.1.3.9 100.1.7.9 weight maxconn
  38. server 100.1.3.10 100.1.7.9 weight maxconn

  对文件进行读操作,输入域名,查询域名下的对应配置内容

  1. flag=False
  2. contain_list=[]
  3. domain=input("请输入域名:").strip()
  4. with open('haproxy.conf') as f:
  5. for line in f:
  6.  
  7. if line.startswith('backend') and line.count(domain):
  8. flag=True
  9. continue
  10. elif line.startswith('backend') and flag:
  11. flag=False
  12. elif flag:
  13. contain_list.append(line.strip())
  14. for i in contain_list:
  15. print(i)

  

  

  

Python之路-文件操作(py3)的更多相关文章

  1. Python之路----文件操作

    文件操作 1.能调用方法的一定是对象,比如数值.字符串.列表.元组.字典,甚至文件也是对象,Python中一切皆为对象. str1 = 'hello' str2 = 'world' str3 = ' ...

  2. python之路——文件操作

    阅读目录 初窥文件操作基本流程 文件编码 文件的打开模式 文件内的光标移动 with上下文管理 文件的修改 练习 回到顶部 初窥文件操作基本流程 计算机系统分为:计算机硬件,操作系统,应用程序三部分. ...

  3. 百万年薪python之路 -- 文件操作

    1.文件操作: f = open("zcy.txt" , mode="r" , encoding="UTF-8") open() 打开 第一 ...

  4. 百万年薪python之路 -- 文件操作练习

    1.有如下文件,a1.txt,里面的内容为: 老男孩是最好的学校, 全心全意为学生服务, 只为学生未来,不为牟利. 我说的都是真的.哈哈 分别完成以下的功能: a,将原文件全部读出来并打印. with ...

  5. Python修炼之路-文件操作

    Python编程之文件操作 文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 每次文件打开.读取信息时,Python自动记录所达到的位置,好比一个书签,之后每一次 ...

  6. python os&shutil 文件操作

    python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...

  7. python 历险记(三)— python 的常用文件操作

    目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 o ...

  8. Python的高级文件操作(shutil模块)

    Python的高级文件操作(shutil模块) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让我们用python的文件处理来进行文件拷贝,想必很多小伙伴的思路是:使用打开2个 ...

  9. Python入门篇-文件操作

    Python入门篇-文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件IO常用操作 open:打开 read:读取 write:写入 close:关闭 readlin ...

随机推荐

  1. word之个人设置

    1.视图设置.五种视图中一般都是用“页面视图”.标尺和导航窗口都需要显示出来,方便操作,显示比例就用最真实的100%比例. 2.设置文件自动保存时间间隔和位置 3.word段落设置,不允许西文单词中间 ...

  2. https学习笔记三----OpenSSL生成root CA及签发证书

    在https学习笔记二,已经弄清了数字证书的概念,组成和在https连接过程中,客户端是如何验证服务器端的证书的.这一章,主要介绍下如何使用openssl库来创建key file,以及生成root C ...

  3. Python之包管理

    1.setup.py from distutils.core import setup setup(name='Distutils', version='1.0', description='Pyth ...

  4. TheFatRat一般使用

    利用它生成后门 第一种通常情况下速度很快,较稳定,但免杀效果极差 推荐使用第二种 免杀效果好,如下图 第一种是最新的模块,较免杀效果极好.还可伪造图标 第二种是旧的

  5. property装饰器以及多态

    property是一种特殊的属性 访问它时执行一段功能然后返回值 class People: def __init__(self, name): self.__name = name @propert ...

  6. SQL Prompt snippets

    SQL    Prompt snippets https://github.com/gvohra/sqlpromptsnippets

  7. scrapy item pipeline

    item pipeline process_item(self, item, spider) #这个是所有pipeline都必须要有的方法在这个方法下再继续编辑具体怎么处理 另可以添加别的方法 ope ...

  8. Java连接数据库 #06# SQL与代码分离(精化版本)

    索引 DAO层依赖关系草图 应用示例 接Java连接数据库#05#,对代码进行改进. DAO层依赖关系草图 应用示例(只需3步!) 1.首先定义接口类: package org.sample.shop ...

  9. pip使用豆瓣的镜像源

    豆瓣镜像地址:https://pypi.douban.com/simple/ 虽然用easy_install和pip来安装第三方库很方便 它们的原理其实就是从Python的官方源pypi.python ...

  10. i.MX6UL -- PWM用户空间使用方法【转】

    本文转载自:https://blog.csdn.net/u014486599/article/details/53010114 i.MX6UL -- PWM用户空间使用方法 开发平台: 珠海鼎芯D51 ...