Python学习(五) —— 文件操作
一、文件操作
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学习(五) —— 文件操作的更多相关文章
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
- python学习日记(文件操作)
文件操作概述 计算机系统分为:操作系统,计算机硬件,应用程序. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序 ...
- python学习总结---文件操作
# 文件操作 ### 目录管理(os) - 示例 ```python # 执行系统命令 # 清屏 # os.system('cls') # 调出计算器 # os.system('calc') # 查看 ...
- 03 python学习笔记-文件操作(三)
本文内容主要包括以下方面: 1. 文件操作基本认识2. 只读(r, rb)3. 只写(w, wb)4. 追加(a, ab)5. r+读写6. w+写读7. a+写读(追加写读)8. 文件的修改 一.文 ...
- python学习day8 文件操作(深度学习)
文件操作 (day7内容扩展) 1 文件基本操作 obj = open('路径',mode='模式',encoding='编码')obj.write()obj.read()obj.close() 2 ...
- python 学习分享-文件操作篇
文件操作 f_open=open('*.txt','r')#以只读的方式(r)打开*.txt文件(需要与py文件在同一目录下,如果不同目录,需写全路径) f_open.close()#关闭文件 打开文 ...
- Python学习笔记——文件操作
python中,一切皆对象. 一.文件操作流程 (1)打开文件,得到一个文件句柄(对象),赋给一个对象: (2)通过文件句柄对文件进行操作: (3)关闭文件. 文件对象f通过open()函数来创建 ...
- Python学习之==>文件操作
1.打开文件的模式 r,只读模式(默认)[不可写:文件不存在,会报错] w,只写模式[不可读:不存在则创建:存在则删除内容] a,追加模式[不可读:不存在则创建:存在则追加内容] r+,读写模式[可读 ...
- Python学习之文件操作
Python 文件打开方式 文件打开方法:open(name[,mode[buf]]) name:文件路径mode:打开方式buf:缓冲buffering大小 f = open('test.txt', ...
- Python学习 :文件操作
文件基本操作流程: 一. 创建文件对象 二. 调用文件方法进行操作 三. 关闭文件(注意:只有在关闭文件后,才会写入数据) fh = open('李白诗句','w',encoding='utf-8') ...
随机推荐
- PHP随机红包算法
2017年1月14日 14:19:14 星期六 一, 整体设计 算法有很多种, 可以自行选择, 主要的"架构" 是这样的, 用redis decr()命令去限流, 用mysql去记 ...
- Go append 省略号
1 前言 Golang append加...用法缘由 2 代码 type Product struct { ID int64 `json:"id"` Name string `js ...
- [C]内存管理、内存泄露、堆栈
原文地址:https://www.cnblogs.com/youthshouting/p/4280543.html,转载请注明源地址. 1.内存分配区间: 对于一个C语言程序而言,内存 ...
- js之雪花飘落
有很多网站都有雪花或花瓣飘落的特效,看上去很好看.我来用js实现这个效果. 在写代码之前可以先引入bass.css对样式做下处理: 1.html部分 先建一个文件夹,在body中插入如下代码 < ...
- EasyUI 如何结合JS导出Excel文件
出处:http://blog.csdn.net/jumtre/article/details/41119991 EasyUI 如何结合JS导出Excel文件 分类: 技术 Javascript jQu ...
- 时间格式化 Date-formatDate
//日期格式化 export function formatDate(date,fmt){ var o = { "M+":date.getMonth() + 1,//月份 &quo ...
- Swift 学习- 02 -- 基础部分2
class NamedShape{ var numberOfSides: Int = 0 var name: String init(name: String) { self.name = name ...
- windows+mysql集群搭建-三分钟搞定集群
注:本文来源: 陈晓婵 < windows+mysql集群搭建-三分钟搞定集群 > 一:mysql集群搭建教程-基础篇 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一 ...
- python----常用功能
sintance和type class Foo(object): pass class Bar(Foo): pass obj = Bar() # isinstance用于判断,对象是否是指定类的实例 ...
- hdu3949 异或空间 + 求矩阵的主元
给定n个整数,将数分解成01序列,由这n个01序列构成矩阵,这n个数构成线性空间,这就是异或空间 将这个矩阵高斯消元,求出t个主元,那么由着t个主元构成的线性空间里总共有2^t个数 设这t个数分别是a ...