一、文件操作

  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. PHP随机红包算法

    2017年1月14日 14:19:14 星期六 一, 整体设计 算法有很多种, 可以自行选择, 主要的"架构" 是这样的, 用redis decr()命令去限流, 用mysql去记 ...

  2. Go append 省略号

    1 前言 Golang append加...用法缘由 2 代码 type Product struct { ID int64 `json:"id"` Name string `js ...

  3. [C]内存管理、内存泄露、堆栈

    原文地址:https://www.cnblogs.com/youthshouting/p/4280543.html,转载请注明源地址. 1.内存分配区间:         对于一个C语言程序而言,内存 ...

  4. js之雪花飘落

    有很多网站都有雪花或花瓣飘落的特效,看上去很好看.我来用js实现这个效果. 在写代码之前可以先引入bass.css对样式做下处理: 1.html部分 先建一个文件夹,在body中插入如下代码 < ...

  5. EasyUI 如何结合JS导出Excel文件

    出处:http://blog.csdn.net/jumtre/article/details/41119991 EasyUI 如何结合JS导出Excel文件 分类: 技术 Javascript jQu ...

  6. 时间格式化 Date-formatDate

    //日期格式化 export function formatDate(date,fmt){ var o = { "M+":date.getMonth() + 1,//月份 &quo ...

  7. Swift 学习- 02 -- 基础部分2

    class NamedShape{ var numberOfSides: Int = 0 var name: String init(name: String) { self.name = name ...

  8. windows+mysql集群搭建-三分钟搞定集群

    注:本文来源:  陈晓婵   <  windows+mysql集群搭建-三分钟搞定集群   > 一:mysql集群搭建教程-基础篇 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一 ...

  9. python----常用功能

    sintance和type class Foo(object): pass class Bar(Foo): pass obj = Bar() # isinstance用于判断,对象是否是指定类的实例 ...

  10. hdu3949 异或空间 + 求矩阵的主元

    给定n个整数,将数分解成01序列,由这n个01序列构成矩阵,这n个数构成线性空间,这就是异或空间 将这个矩阵高斯消元,求出t个主元,那么由着t个主元构成的线性空间里总共有2^t个数 设这t个数分别是a ...