python ——文件的操作大全,如with..as
工作中遇到了需要对json文件进行增删内容操作的需要,于是系统性的整理了一下关于文件的基本操作这里的知识点:
结构:新建文件→打开文件→读取文件→关闭文件
一、基本文件操作
1、新建文件(打开文件),需要指定打开文件的方式(“r”, "r+", "w....)
语法:file = open(filename [,mode[,buffering]])
用open关键字,可以新建一个文件
常用的mode有两个,特记忆如下:
①r+:打开一个文件用于读写。文件指针将会放在文件的开头。
②w:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
PS:r*的文件,原文件必须存在,而w*的文件,原文件可存在,也可不存在,如果原文件存在,则将其覆盖,如果不存在就创建。
2、打开文件时指定编码方式(默认为GBK,报错时需要转换会“utf-8”)
用open()打开文件时,默认为GBK编码,当被打开的文件不是GBK编码时,将抛出异常,所以需要我们在打开文件的时候指定编码方式:
例如,打开采用UTF-8编码保存的notic.txt文件,使用如下代码转化:
- file = open('notic.txt', 'r', encoding='utf-8')
3、关闭文件:
打开文件后,一般要关闭文件,忘记关闭的话会有意想不到的问题
file.close() #file为关闭的对象
4、打开文件使用with语句
好处:可以在with语句执行完毕后,自动关闭文件。
句柄:
with expression as target:
with-body
其中: expression指定一个表达式,可以是一个函数,可以为open()函数,即打开文件
target:将读取出来的值赋值给target,是一个变量。
为什么with语句会自动执行打开和关闭动作呢?因为with会触发__enter__和__exit__,__enter__ 和 __exit__ 必须并用:
- class Sample:
- def __enter__(self):
- print("in __enter__")
- return "Foo"
- def __exit__(self, exc_type, exc_val, exc_tb):
- print("in __exit__")
- def get_sample():
- return Sample()
- with get_sample() as sample:
- print("Sample:", sample)
- #》
- in __enter__
- Sample: Foo
- in __exit__
5、读取文件内容:用读取方法的前提是:一定要用‘r’(只读)或者'r+'(读写)打开的文件
5.1:读取全部:file.read(size),如果有指定位置的读取,建议用seek
其中:size可选,指定读取的字符个数,如果为空则全部读取。
5.2: 仅读取一行:file.readline()
需要用循环控制,进行逐行的读取
5.3:读取全部行:file.readlines(),它与read的区别是readlines会返回一个字符串列表,每一行为一个元素。
可以用for语句逐行打印,因为文件过大读取全部会很慢。
6、写入文件
file.write():写入文件具体内容。
对json文件的解析及操作,见链接https://www.cnblogs.com/fish-101/p/11636444.html
python ——文件的操作大全,如with..as的更多相关文章
- python文件相关操作
Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...
- Python文件基础操作(IO入门1)
转载请标明出处: http://www.cnblogs.com/why168888/p/6422270.html 本文出自:[Edwin博客园] Python文件基础操作(IO入门1) 1. pyth ...
- python文件高级操作
python文件高级操作和注意事项等等 文件过大保护 由于read是一次性读取文件所有的内容,如果文件100G,内存就会吃不消,所以推荐使用read(size)一次读取指定字节/字符(根据rb,或者r ...
- python 文件读写操作(24)
以前的代码都是直接将数据输出到控制台,实际上我们也可以通过读/写文件的方式读取/输出到磁盘文件中,文件读写简称I/O操作.文件I/O操作一共分为四部分:打开(open)/读取(read)/写入(wri ...
- Python 文件读写操作实例详解
Python提供了必要的函数和方法进行默认情况下的文件基本操作.你可以用file对象做大部分的文件操作 一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前 ...
- Python 文件常见操作
# -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...
- python 文件 IO 操作
Python 的底层操作 * 其实Python的文件IO操作方法,和Linux底层的差不多 打开 f = open(filename , "r") 后面的 "r" ...
- python文件的操作
文件的操作,归根结底就只有两种:打开文件.操作文件 一.打开文件:文件句柄 = open('文件路径', '模式') python中打开文件有两种方式,即:open(...) 和 file(...) ...
- ~~Python文件简单操作~~
进击のpython Python文件操作 在说Python的文件操作之前 我们可以先思考一个问题 平时我们是怎么对电脑中的文件进行操作的呢? 打开电脑⇨找到文件⇨打开文件⇨读文件⇨修改文件⇨保存文件⇨ ...
随机推荐
- shell 中获取子字符串的正确姿势
前言 shell 取子串的方式有点特别,你写的匹配字符串是需要从头开始匹配的,第一个匹配到了才开始匹配下一个,这个类似于python中的match的工作方式. 1,获取子串有两种方式 使用字符串匹配的 ...
- 数据结构和算法(Golang实现)(7)简单入门Golang-标准库
使用标准库 一.避免重复造轮子 官方提供了很多库给我们用,是封装好的轮子,比如包fmt,我们多次使用它来打印数据. 我们可以查看到其里面的实现: package fmt func Println(a ...
- AJ学IOS(12)UI之UITableView学习(上)LOL英雄联盟练习
AJ分享,必须精品 先看效果图 源代码 NYViewController的代码 #import "NYViewController.h" #import "NYHero. ...
- 2019-08-01【机器学习】有监督学习之分类 KNN,决策树,Nbayes算法实例 (人体运动状态信息评级)
样本: 使用的算法: 代码: import numpy as np import pandas as pd import datetime from sklearn.impute import Sim ...
- Android 修改应用程序字体
在网上搜索了相关资料,研究了两种算是比较快速的改变程序字体的方法,好,先来介绍着两种方法. 首先第一种方法是重写控件(以Textview为例): 1.Android在写程序的时候谷歌早已将所有字体都默 ...
- 【Java】步入OOP 面向对象
面向对象编程 OOP Object Oriented Programming 面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物. 面向对象是相对于面向过程来讲的,面向对 ...
- php.ini中文详解
[PHP] ;;;;;;;;;;;;;;;;;;;;;;; ; 关于 php.ini 配置文件 ; ;;;;;;;;;;;;;;;;;;;;;;; ; PHP 的初始化文件, 必须命名为 php.in ...
- Linux 提高操作效率之 tab 命令补全
最近在使用阿里云 ECS 时,发现 Centos 无法进行 tab 补全,特别影响操作效率,本文简单记录下 Linux 下的 tab 命令补全功能,希望对 Linux 初学者有所帮助. 安装 Linu ...
- linux知识点系列之 umask
介绍 umask(user's mask)用来设置文件权限掩码.权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限. UNIX最初实现时不包含umask命 ...
- 数值计算方法实验之Lagrange 多项式插值 (Python 代码)
一.实验目的 在已知f(x),x∈[a,b]的表达式,但函数值不便计算,或不知f(x),x∈[a,b]而又需要给出其在[a,b]上的值时,按插值原则f(xi)= yi(i= 0,1…….,n)求出简单 ...