一、文件操作

  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. elasticsearch5.0.1集群排错的几个思路总结

    1.首先查看集群整体健康状态 # curl -XGET http://10.27.35.94:9200/_cluster/health?pretty { "cluster_name" ...

  2. redis递减,过期返回值

    2017年4月24日 18:23:07 星期一 $key = 'abc'; $redis = IRedis::getInstance(); $a = $redis->setex($key, 1, ...

  3. 欲善其工必先利其器-----ThinkPad E430加装SSD固态硬盘和内存

    大概13年5月左右入手的小黑ThinkPad E430 当时辞职换工作换城市所以预算有限,4k左右大洋买下了这款笔记本电脑.3年左右的时间,一直使用单位电脑,偶尔使用小黑真心崩溃.你会发现你会有放弃使 ...

  4. Ex 7_21 在一个流网络中,一条边被称为是临界的...第十三次作业

    如果原图中的一条边e(u,v)是临界边,则在求解最大流的过程中这条边的流量将会被占满,即在残量图中只存在反向边e(v,u),不存在正向边e(u,v).但是残量图中并不是所有的只存在反向边的顶点对之间的 ...

  5. Ex 2_5 求解递推式..._第三次作业

  6. Django 笔记(六)mysql增删改查

    注:增删改查表数据在 views.py 内 添加表数据: 删表数据:  改表数据:  查表数据: 常用的查询方法: 常用的查询条件: 相当于SQL语句中的where语句后面的条件 语法:字段名__规则

  7. Mvc 批量图片上传

    首先导入文件(官网上下载 kindeditor ): <link href="~/kindeditor-4.1.11-zh-CN/kindeditor/themes/default/d ...

  8. jqGrid后台交互样例

    schoolManageGrid = $("#jqGrid").jqGrid({ url : ctx.path+"/api/school/querySchools&quo ...

  9. Python- 索引 B+数 比如书的目录

    1.索引 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题, 在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作, 因此对查询 ...

  10. Confluence 6 索引支持的语言并进行修改

    Confluence 中索引的语言配置. 可以单击编辑后进行修改. https://www.cwiki.us/display/CONF6ZH/Configuring+Indexing+Language