文件操作示例分析:

文件操作一般要经历三个步骤:

  1. 打开文件
  2. 操作文件
  3. 关闭文件

读取操作示例:

>>>f = open('test.txt', 'r')          # 打开文件test.txt, r表示只读,文件不存在则报错
>>>f.read() # 文件打开后,read()方法将文件内容读到内存中
'123432' # 获取的内容是一个字符串
>>>f.close() # 文件使用完必须关闭,打开文件占用资源

  打开文件:文件句柄 = file('文件路径',‘模式’)

备注:Python中打开文件有两种方式,即open()和file(),本质上前者会调用后者进行文件操作,推荐使用open

  上诉,方式中,每次打开一个文件操作完成后,都要手动关闭文件,操作繁琐,易忘。推荐一种更加简便的操作方式:with语句, 这种语句帮助我们自动完成f.close() 这一步操作。

with open('test.txt', 'r') as f:
file = f.read()
print(type(file))
pirint(file) # 输出结果
<class'str'> # 取出的内容还是字符串
123432 # 虽然没有看到引号,但还是字符串
----------------------------------------------------------------------
# with 语句的多文件同时处理
# Python2.7版本之后,with 支持同事打开多个文件
with open('db1','r') as f1, open('db2', 'r') as f2:
pass ----------------------------------------------------------------------- # 一个文件读取一行处理一行然后写入另一个文件一行
with open('db1', 'r', encoding="utf-8") as f1, open('db2', 'w', encoding="utf-8") as f2:
for line in f1:
new_str = line.replace('abc', "st")
f2.write(new_str)

  

写入文件示例:

with open('test.txt', 'a+') as f:
f.write('hello world')

  

备注所有的文件操作,如果文件没有写绝对路径,默认路径为程序所在路径,文件操作要注意操作文件的存在性。

文件操作权限:

  • r   # 以只读的方式打开文件,文件的指针放在文件的开头,默认方式
  • r+  # 以读写模式打开,和追加效果一样,但是如果文件不存在,不会像a一样创建文件,而是报错
  • rb  # 以二进制格式打开一个文件用于只读,文件指针将会放在文件的开头,这是默认模式
  • rb+ # 以二进制格式打开一个文件用于读写,文件指针放在文件的开头
  • w   # 替换重写(覆盖写入)
  • w+  # 以读写模式打开文件,如果该文件已经存在则将其内容覆盖,文件不存在则创建文件
  • wb  # 以二进制格式打开一个文件只用于写入,如果该文件已经存在则将其内容覆盖,文件不存在则创建文件
  • wb+ # 以二进制格式打开一个文件用于读写, 如果该文件已经存在则将其内容覆盖,文件不存在则创建文件
  • a   # 在原文件的基础上,追加写入,文件指针放在文件结尾,如果文件不存在,则创建新文件进行写入
  • a+  # 打开一个文件用于读写,如果文件已经存在,文件指针放在文件结尾。文件打开时是追加模式,如果文件不存在则创建文件用于读写
  • ab  # 以二进制格式打开一个文件,如果文件存在,文件指针放在文件结尾,文件不存在则创建新文件并进行写入
  • ab+ # 以二进制格式打开一个文件用于追加,如果文件存在,文件指针放在文件结尾,文件不存在则创建新文件用于读写
  • b   # 二进制文件,主要用于跨平台,来解决windows和linux的回车换行区别,按照字节
  • x   # python3中添加,如果文件存在则报错,不存在则创建并写入内容

文件其他方法:

  • f.mode      # 显示文件打开格式
  • f.flush()   # 把缓冲区中的数据刷到硬盘,当你往文件里写数据时,python会先把你写的内容写到缓冲区,等缓冲区满了再统一自动写入硬盘,因此减少了对硬盘的操作次数,毕竟硬盘的速度比内存慢得多
  • f.read()      # 把文件一次性读入内存
  • f.read(szie)  # 一次读取指定大小的文件
  • f.readline()  # 读取一行文件
  • f.readlines() # 把文件都读入内存,并且每行转成列表中的一个元素
  • f.tell()      # 显示程序光标所在该文件中的当前的位置,位置是以字节来算的
  • f.seek()      # 跳到指定位置,f.seek(0) 是返回文件开始,位置是以字节来算的
  • f.truncate()   # f.truncate(10) 从文件开头截取10个字符,超出的都删除
  • f.writelines() # 参数需为一个列表,将一个列表中的每一个元素都写入文件
  • f.xreadlines() # 以迭代的形式循环文件,在处理大文件时效率极高,只记录文件开头和结尾,每循环一次,只读一行,因此不需要将整个文件都一次性加载到内存,而如果用readlines(),则需要将整个文件都加载到内存,处理大文件不合适。
  • f.next()       # 获取下一行数据,不存在,则报错

文件对象的属性

  • file.closed       # 返回True如果文件已经关闭,否则返回False
  • file.mode        # 返回被打开文件的访问模式
  • file.name        #  返回文件的名称
  • file.softspace  # 如果用print输出后,必须跟一个空格符,则返回False ,否则返回True
 

文件读取选择:

  • 文件很小,read() 最方便
  • 不确定文件大小,反复调用read(size) 安全
  • 如果是配置文件,调用readlines() 最方便
 

操作系统中文件操作

  • import os    # python中的文件操作需要导入os模块
  • os.rename( current_file_name, new_file_name)   # 文件重命名
  • os.remove( file_name )   # 删除文件
  • os.mkdir( "test")            # 创建一个目录test
  • os.chdir( "newdir" )        # 切换目录到newdir
  • os.getcwd()                   # 获取当前目录的路径
  • os.rmdir( "dirname" )     # 删除目录,在删除目录前,它的所有内容应该先被清除

Python3之文本操作的更多相关文章

  1. python中的文本操作

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

  2. Linux命令-文件文本操作grep

    文件文本操作 grep 在文件中查找符合正则表达式条件的文本行 cut 截取文件中的特定字段 paste 附加字段 tr 字符转换或压缩 sort 调整文本行的顺序,使其符合特定准则 uniq 找出重 ...

  3. linux文本操作界面 vi面板如何复制一行

    linux文本操作界面 vi面板如何复制一行 1)把光标移动到要复制的行上2)按yy3)把光标移动到要复制的位置4)按p 在vi里如何复制一行中间的几个字符?如果你要从光标处开始复制 4 个字符,则先 ...

  4. HTML&CSS基础学习笔记1.6-html的文本操作标签

    文本也许是HTML里最常见的元素了,所以我们有必要对HTML的文本操作标签做下认识. 1. <em>,<i>内的文字呈现为倾斜效果: 2. <strong>,< ...

  5. 如何设置secureCRT的鼠标右键为弹出文本操作菜单功能

    secureCRT的鼠标右键功能默认是粘贴的功能,用起来和windows系统的风格不一致, 如果要改为右键为弹出文本操作菜单功能,方便对选择的内容做拷贝编辑操作,可以在 options菜单----&g ...

  6. jQuery 选择器 筛选器 样式操作 文本操作 属性操作 文档处理 事件 动画效果 插件 each、data、Ajax

    jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方 ...

  7. Shell命令之文本操作

    前言 在Linux中,文本处理操作是最常见的,应用非常广泛,如果能熟练掌握,可以大大提高开发效率. awk/sed/grep是文本操作领域的“三剑客”,学会了这3个命令就可以应对绝大多数文本处理场景. ...

  8. jQuery-对标签元素 文本操作-属性操作-文档的操作

    一.对标签元素文本操作 1.1 对标签中内容的操作 // js var div1 = document.getElementById("div1"); div1.innerText ...

  9. 文本操作 $(..).text() $(..).html() $(..).val()最后一种主要用于input

    文本操作: $(..).text() # 获取文本内容 $(..).text('<a>1</a>') # 设置文本内容 $(..).html() $(..).html('< ...

随机推荐

  1. if UNITY_EDITOR这个判断常用,还有哪个常用捏?

    #if DEVELOPMENT_BUILD || UNITY_EDITOR DEVELOPMENT_BUILD表示开发版的意思,会在程序右下角显示 Development Build 我们可以根据这个 ...

  2. Qt + OpenSenceGraph(osg) 加载OSG模型

  3. SUSE Linux 多路径软件+LVM+裸设备的配置

    1.先要查出光纤卡的WWN号,SUSE 10下光纤卡的WWD在/sys/class/fc_host/host5/port_name文件中,有两块卡就会有两个host*的目录 接好光纤后可以在dev下可 ...

  4. mysqli_query(“set nams utf8”)为FALSE

    经过过测试: mysqli_query("set nams  utf8")必须在所有语句的执行之前,否则会返回FALSE. 看手册,说不建议用mysqli_query来设置编码,用 ...

  5. mysql-day01

    Microsoft Windows [版本 10.0.17134.648](c) 2018 Microsoft Corporation.保留所有权利. C:\Users\lijun>java用法 ...

  6. [ASP.NET MVC 小牛之路]03 - Razor语法(转)

    出处:http://www.cnblogs.com/willick/p/3224144.html Razor是MVC3中才有的新的视图引擎.我们知道,在ASP.NET中,ASPX的视图引擎依靠< ...

  7. SQL*Plus用法指南

    SQL是一种命令式的语言,它是用户操作数据库的最重要的一种方式.SQL语句在执行时,需要有一个执行环境. 开发人员在开发软件时,最终的结果是形成一个应用程序.在应用程序中可以嵌入SQL语句,利用这些S ...

  8. numpy.convolve()

    卷积函数: numpy.convolve(a, v, mode='full') Parameters: a : (N,) array_like First one-dimensional input ...

  9. pig(数据流语言和编译器)学习https://www.w3cschool.cn/apache_pig/apache_pig_execution.html

    当我们配置了hadoop集群执行的时候 可以通过命令ls进行查看 存储语法 STORE Relation_name INTO ' required_directory_path ' [USING fu ...

  10. Jenkins构建完成之后运行脚本可以杀掉TomCat但是起不来的解决方法

    Jenkins构建完成之后运行脚本可以杀掉TomCat但是起不来的解决方法 写了一个重启tomcat的脚本,让jenkins编译.打包.发布时调用.在本地写好重启tomcat的脚本后,本地执行脚本没有 ...