一、文件操作

  1、文件操作:数据持久化的一种

       步骤:找到文件,打开文件,操作:读、写、追写,关闭文件

       打开文件:f = open(文件路径,操作模式,编码方式),f:文件句柄、文件操作符、文件操作对象,f 习惯叫 file、f_obj、f_handler、fh,操作模式默认为读

              open打开文件是依赖了操作系统提供的途径,操作系统有自己的编码,open在打开的时候默认使用操作系统的编码方式

       文件路径:文件和py的执行文件在相同路径下,直接用文件的名字就可以打开文件

            文件和py的执行文件不在相同路径下,用绝对路径打开文件文件的绝对路径,需要以取消转义的方式来表示:1.\\  2.r''

       如果以写的方式打开一个文件,那么不存在的文件会被创建,存在的文件内容会被清空

       关闭文件:f.close(),必须写,del f 主动释放内存中的一个变量,可写可不写

f = open('练习','w',encoding='utf-8')  #w:打开并清空文件
print(f.readable()) #判断文件是否可读
print(f.writable()) #判断文件是否可写
f.write('') #写文件的时候需要写数字,需要把数字转换成字符串
f.write('学而时习之')
f.close() #关闭文件
f = open(r'C:\Users\Administrator\Desktop\case.txt',,encoding='utf-8')  #绝对路径,模式为只读
print(f.readline().strip()) #按行读,只读一行,strip清除换行符
print(f.readlines()) #把每行的内容变成字符串存在一个列表里

  2、文件的读:read,'r'

     读文件的方式:第一种:read,一次性读出文件的所有内容,占用内存大

            第二种:read(n),指定读n个字符

            第三种:按照行读,readline(),每次执行readline就会往下读一行,strip去掉空格、制表符、换行符

            第四种:readlines,返回一个列表,将文件中的每一行作为列表中的每一项返回一个列表

            第五种:最常用,for循环,for l in f:print(l.strip())

f = open('练习',encoding='utf-8')
print(f.read())
print(f.read(5))
print(f.readline().strip())
print(f.readlines())
f.close() f = open('练习',encoding='utf-8')
for l in f:
print(l.strip())
f.close()

  3、读文件并整理成需要的数据类型

f = open('case',encoding='utf-8')
lis = []
for line in f:
if line.strip(): #判断是否为空行
dic = {}
line = line.strip()
li = line.split()
dic['name'] = li[0]
dic['price'] = int(li[1])
lis.append(dic)
print(lis)
f.close()

  4、文件的打开模式

Character Meaning
‘r' open for reading (default)
‘w' open for writing, truncating the file first
‘a' open for writing, appending to the end of the file if it exists
‘b' binary mode
‘t' text mode (default)
‘+' open a disk file for updating (reading and writing)
‘U' universal newline mode (for backwards compatibility; should not be used in new code)

        打开文件的模式有:1、(默认为文本模式):r,只读模式【默认模式,文件必须存在,不存在则抛出异常】

                                                                          w,只写模式【不可读;不存在则创建;存在则清空内容】

                              a,追加写模式【不可读;不存在则创建;存在则只追加内容】

             2、对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作,注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

             3、"+" 表示可以同时读写某个文件

# r+  可读可写:
#1.先读后写:写是追写
#2.先写后读:从头开始写 # w+ 可写可读:一上来文件就清空了
# 尽管可读:1.但是你读出来的内容是你这次打开文件新写入的
# 2.光标在最后,需要主动移动光标才可读 # a+ 追加可读 #一般情况下:文件操作,要么读,要么写,很少会用到读写、写读同时用的
#常用的:
#r、w、a,需要指定编码
#rb、wb、ab,不需要指定编码了

  5、文件内的光标移动

    read(5):文件打开方式为文本模式时,代表读取3个字符

            文件打开方式为b模式时,代表读取3个字节

    其余的文件内光标移动都是以字节为单位如seek,tell,truncate

#seek()  光标移动到第几个字节的位置
# f.seek(0) 移动到最开始
# f.seek(0,2) 移动到最末尾
#tell() 告诉当前光标在第几个字节
#truncate() 从文件开始的位置只保留指定字节的内容

  6、文件的修改:打开旧文件, 把旧文件的内容读出来,创建一个新文件,把旧文件读出来的内容修改后写入新文件,把旧文件删除,再把新文件重命名成旧文件的名字

#第一种方法:
f1 = open('old_file',encoding='utf-8')
f2 = open('new_file','w',encoding='utf-8')
for line in f1:
line = line.replace('old','new')
f2.write(line)
f1.close()
f2.close()
import os
os.remove('old_file')
os.rename('new_file','old_file')
#第二种方法:
with open('old_file',encoding='utf-8') as f1,open('new_file','w',encoding='utf-8') as f2: #用with打开文件不用close
for line in f1:
line = line.replace('old','new')
f2.write(line)
import os
os.remove('old_file') #删除old_file
os.rename('new_file','old_file') #new_file重命名

  7、文件的删除

import os  #导入os模块
os.remove('file') #删除文件

Python学习(五) —— 文件操作的更多相关文章

  1. python学习笔记:文件操作和集合(转)

    转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...

  2. python学习日记(文件操作)

    文件操作概述 计算机系统分为:操作系统,计算机硬件,应用程序. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序 ...

  3. python学习总结---文件操作

    # 文件操作 ### 目录管理(os) - 示例 ```python # 执行系统命令 # 清屏 # os.system('cls') # 调出计算器 # os.system('calc') # 查看 ...

  4. 03 python学习笔记-文件操作(三)

    本文内容主要包括以下方面: 1. 文件操作基本认识2. 只读(r, rb)3. 只写(w, wb)4. 追加(a, ab)5. r+读写6. w+写读7. a+写读(追加写读)8. 文件的修改 一.文 ...

  5. python学习day8 文件操作(深度学习)

    文件操作 (day7内容扩展) 1 文件基本操作 obj = open('路径',mode='模式',encoding='编码')obj.write()obj.read()obj.close() 2 ...

  6. python 学习分享-文件操作篇

    文件操作 f_open=open('*.txt','r')#以只读的方式(r)打开*.txt文件(需要与py文件在同一目录下,如果不同目录,需写全路径) f_open.close()#关闭文件 打开文 ...

  7. Python学习笔记——文件操作

    python中,一切皆对象.   一.文件操作流程 (1)打开文件,得到一个文件句柄(对象),赋给一个对象: (2)通过文件句柄对文件进行操作: (3)关闭文件. 文件对象f通过open()函数来创建 ...

  8. Python学习之==>文件操作

    1.打开文件的模式 r,只读模式(默认)[不可写:文件不存在,会报错] w,只写模式[不可读:不存在则创建:存在则删除内容] a,追加模式[不可读:不存在则创建:存在则追加内容] r+,读写模式[可读 ...

  9. Python学习之文件操作

    Python 文件打开方式 文件打开方法:open(name[,mode[buf]]) name:文件路径mode:打开方式buf:缓冲buffering大小 f = open('test.txt', ...

  10. Python学习 :文件操作

    文件基本操作流程: 一. 创建文件对象 二. 调用文件方法进行操作 三. 关闭文件(注意:只有在关闭文件后,才会写入数据) fh = open('李白诗句','w',encoding='utf-8') ...

随机推荐

  1. mysql5.6基于主从复制的mmm高可用架构详解

    MMM规划192.168.3.12 master192.168.3.13 slave1192.168.3.198 slave2 MMM部署步骤1.配置主主复制及主从同步集群2.安装主从节点所需要的支持 ...

  2. vue.js computed,watch的区别

    computed: 当数据没有变化时,它会去读取缓存,当数据有变化时,它才会去执行computed,而不会像method和watch一样每次都去执行函数(摘自https://www.jb51.net/ ...

  3. 6)协程三( asyncio处理并发)

    一:使用 asyncio处理并发 介绍 asyncio 包,这个包使用事件循环驱动的协程实现并发.这是 Python 中最大也是最具雄心壮志的库之一. 二:示例 1)单任务协程处理和普通任务比较 #普 ...

  4. HTML阻止冒泡事件的发生

    阻止事件冒泡函数(低级标签的点击事件触发后,上级标签的点击事件再触发,此函数就是防止冒泡事件发生) function stopEventBubble(event){ var e=event || wi ...

  5. linux之cp命令(转载)

    Linux中使用cp命令复制文件(夹),本文就日常工作中常用的cp命令整理如下. 一.复制一个源文件到目标文件(夹). 命令格式为:cp 源文件 目标文件(夹) 这个是使用频率最多的命令,负责把一个源 ...

  6. gnuradio 使用eclipse 编辑器记录

    第1步 - 首先安装eclipse 先去官网下载,然后解压  --->下载版本是C++/C 版---->解压--->打开--->help->eclipse marketp ...

  7. Meta标签详解

    [转载]Meta标签详解 Posted on 2005-05-17 20:00 二十四画生 阅读(54195) 评论(102)  编辑 收藏 Meta标签详解,在网上转的,希望对大家有用 引言 您的个 ...

  8. 基于Manhattan最小生成树的莫队算法

    点u,v的Manhattan距离:distance(u,v)= |x2-x1|+|y2-y1| Manhattan最小生成树:边权值为两个点Manhattan距离的最小生成树. 普通算法:prim复杂 ...

  9. CF919F

    题意: Alice和Bob玩游戏,每人各有8张牌,牌的大小在0~4之间 每次操作,先手可以选择自己一张牌和对方一张牌求和后%5,将新的牌替代自己拿出的那张牌,以此类推,直到有一个人手中的牌全部是0,则 ...

  10. Spring Boot如何使用Runner实现启动时调用?用法和原理都在这里

    在日常的项目开发中经常会遇到这样的需求:项目启动的时候进行一些一次性的初始化工作,如读取加载资源文件.或者执行其它外部程序. 这个时候我们就可以用到spring-boot为我们提供的一种扩展机制--R ...