第四章 python的文件操作

在python里,我们可以通过open()方法打开文件并且用内置方法处理文件内容。

需要注意的是,open() 会默认自动转换为2进制再存储(write方法执行时)。所以open命令也是在2进制的基础上进行存储的。

4.1 文件基本操作

obj = open(file='路径',mode='模式',encoding='编码')
obj.write()  # 可写模式下
obj.read()  # 可读模式下
obj.close()

4.2 打开模式

  • 操作字符串

    • r/w/a
    • r+/w+/a+
  • 直接操作2进制
    • rb/wb/ab
    • r+b/w+b/a+b

4.3 文件操作

  • read() #全部读入内存

    read(2)
    r模式下2表示读取前两个字符(不是字节),当rb模式,就是读取2个字节了

  • write(str) #w模式下,写入字符串

    wb模式下写入的是2进制,所以字符串需要decode到2进制进行写入:
    ‘obj.write(你好‘.decode(utf-8))

  • seek(光标字节的位置) #无视打开模式都是字节
  • tell() #获取光标当前所在的字节位置
  • flush() #强制将写入内存的数据刷到硬盘上,相当于保存到硬盘

4.4 文件关闭

文件不关闭,就会浪费资源。有时候写代码的时候会忘记close()

推荐文件打开方法:
with open(file=‘路径‘,mode=‘模式‘,encoding=‘编码‘) as f: # 相当于 f = open(file=‘路径‘,mode=‘模式‘,encoding=‘编码‘) data = read() # 下一行会自动缩进, # 缩进里的代码执行完毕后自动关闭
同时打开复数个文件:
with open(file=‘路径‘,mode=‘模式‘,encoding=‘编码‘) as f1,open(file=‘路径‘,mode=‘模式‘,encoding=‘编码‘) as f2:

4.5 文件的修改

对文件的写入是不能插入的(硬盘写入的规则)
所以当想插入的时候,需要先把文件内容全部读入内存,然后修改之后重新全部写入。

  • 大文件修改
    如果文件过大。那我们可以用一个temp文件来作为过渡文件。
    读取文件第一行(或者一定数量的字节),在内存修改,a模式写入temp文件。
    全部写入temp文件后,temp文件用os.replace()来覆盖原文件。
## 一边读行,一边修改,一边写入新文件
import os
old_file = r'C:\Users\kouneli\Desktop\python\temp\test.txt'
new_file = r'C:\Users\kouneli\Desktop\python\temp\test_new.txt'
f = open(old_file,'r')
f_new = open(new_file,'a')
old_str = 'o'
new_str = 'K'

for line in f:
    if old_str in line:
        line = line.replace(old_str,new_str)

    f_new.write(line)

f.close()
f_new.close()
os.replace(new_file,old_file)        # 吧新文件名字改成源文件的名字,就把之前的覆盖掉了。 mac使用os.rename()

原文地址:https://www.cnblogs.com/py-xiaoqiang/p/11030888.html

时间: 2024-08-05 13:08:30

第四章 python的文件操作的相关文章

第三章 Python基础——文件操作&函数 续

3.6函数进阶 名称空间:name space 例:若变量X=1,1存放于内存中,那存放X与1绑定关系的地方就叫做名称空间. 名称空间共三种,分别如下: locals:是函数内名称空间,包括局部变量和形参 globals:全局变量,函数定义所在模块的名字空间 builtins:内置模块的名字空间 不同变量的作用域不同就是由于这个变量所在的命名空间决定的. 作用域即范围: 全局范围:全局存活,全局有效 局部范围:临时存活,局部有效 注:查看作用域方法 globals(),locals() 作用域查

Python开发【第三章】:Python的文件操作

Python的文件操作 一.读取操作,3种读取方式的区别 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian info_file = open("here_we_are",encoding="utf-8") #默认读取模式 print(info_file) #不加参数,直接打印 #<_io.TextIOWrapper name='here_we_are' mode='r' encoding='u

python之文件操作-复制、剪切、删除等

下面是把sourceDir文件夹下的以.JPG结尾的文件全部复制到targetDir文件夹下: <span style="font-size:18px;">>>>import os >>> import os.path >>> import shutil >>> def copyFiles(sourceDir,targetDir): for files in os.listdir(sourceDir):

python中文件操作的其他方法

前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r',encoding='utf-8')for i in p:print(i)结果如下: hello,everyone白日依山尽,黄河入海流.欲穷千里目,更上一层楼. 1.readline   #读取一行内容 p=open('poems','r',encoding='utf-8') print(p.rea

第四章 Python 文件处理

第1章 文件处理 1.1 文件操作流程 1. 打开文件,得到文件句柄并赋值给一个变量 2. 通过句柄对文件进行操作 3. 关闭文件 1.2 具体操作 1.打开文件,得到文件句柄并赋值给一个变量 f=open('db.txt','r',encoding='utf-8') 2.通过句柄对文件进行操作 data=f.read() 3. 关闭文件 f.close() #回收操作系统资源 1.3 流程分析 f=open('db.txt','r',encoding='utf-8') 1.由应用程序向操作系统

python基础-第四篇-4.2文件操作

基本打开模式 文件操作的流程:打开文件,操作文件,关闭文件 打开文件方法:open(文件名,模式,编码) file = open(‘文件名’) 模式在不给值的情况下,默认为只读,而且如果是非当前的目录下文件名要加绝对路径 ‘r’--只读 file_name.read()   一次性把指针后的内容全部读出来 file_name.readlines()  把指针后内容,以列表的形式每行读出 f = open('ha.log','r') data1 = f.readlines() f.close()

第四章 python中的函数

第一节 函数的介绍 1)函数就是完成特定功能的一个语句组,这组语句作为一个单位使用,并且给它取一个名字. ? 2)可以通过函数名在程序的不同地方多次执行(这通常叫做函数调用),却不需要在所有地方都重复编写这些语句. 3)自定义函数 - 用户自己编写的 4)预定义的python函数 - 系统自带的一些函数,还有一些第三方编写的函数,如其他程序员编写的一些函数,对于这些现成的函数用户可以直接拿来使用. 5)为什么使用函数 6)降低编程的难度 - 通常将一个复杂的大问题分解成一系列更简单的小问题,然后

Python 读写文件操作

python进行文件读写的函数是open或file file_handler = open(filename,,mode) Table mode 模式 描述 r 以读方式打开文件,可读取文件信息. w 以写方式打开文件,可向文件写入信息.如文件存在,则清空该文件,再写入新内容 a 以追加模式打开文件(即一打开文件,文件指针自动移到文件末尾),如果文件不存在则创建 r+ 以读写方式打开文件,可对文件进行读和写操作. w+ 消除文件内容,然后以读写方式打开文件. a+ 以读写方式打开文件,并把文件指

python(5)——文件操作

python文件操作 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 1 f=open('users.txt','r') #打开文件, 默认为只读模式 2 res = f.read()#读取文件内容 3 print(res) 4 f.close()#关闭文件 (一)打开文件 f=open('users.txt','r',encoding='utf-8') #默认为只读模式   with使用:在操作文件的时候,经常忘了关闭文件,这样