Python 文件操作(1)
今天大佬给了个A文件给我,里面存放了机密数据。
什么机密数据???
有帅哥的联系方式吗?

赶紧打开来看一下

1.open() 函数基本版
Python大佬有个内置开文件的函数open(), 专门开文件的。它能打开一个文件,并且返回一个文件对象。(这个文件对象对应有一系列函数,用起来贼方便,这里不细讲,下篇见)
下面看一下它的语法:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
当然,一般我们会用到前面两个参数,一个为文件的路径(你要告诉人家地址,可以是绝对地址,也可以是相对地址,这样才能找到帅哥的家门呀);另一个用于指定你要以什么样的方式打开这个文件(有读、有写,具体方式见下面的讲解,默认使用'r',只读模式)。encoding呢,你乱码的时候找它就对了。
举个栗子

open('secret.txt')
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-1-0b7125542668> in <module>()
----> 1 open('secret.txt')
FileNotFoundError: [Errno 2] No such file or directory: 'secret.txt'
没文件!!!你竟敢把秘密藏起来

突然,想起,原来我把secret放在G盘了,写相对路径去找是不OK的呀

好啦好啦,我再开一遍
open('G:\Python\secret.txt', 'r')
<_io.TextIOWrapper name='G:\\Python\\secret.txt' mode='r' encoding='cp936'>
open('G:\Python\secret.txt')
<_io.TextIOWrapper name='G:\\Python\\secret.txt' mode='r' encoding='cp936'>
找到秘密文件啦!!!
如果你只是想只读这个文件,写不写'r'都行,make no difference

一般,我们会把这个文件对象挂个标签,叫他f什么的,那么后面就可以随意来个读、写操作
下面来示范操作
f = open('G:\Python\secret.txt')
f.read()
'[Jason:21, 179, 70, 18813975806],[K:22, 180, 75, 18813975111]'
2.open() 进阶版——打开文件的方式
mode常见用法
mode参数千千万,第一次看的时候,我整个人是晕的

(你也太浮夸了),下面是一些常用的参数:
- r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 
- w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 
- a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 
- b 以二进制形式打开二进制文件,比如图片、视频、音频。 
- '+ ' 打开一个文件进行更新(可读可写)(通杀) 
- r+ 打开一个文件用于读写。文件指针将会放在文件的开头。 
- w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 
- a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 
- rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 
- wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 
- ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 
- rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件,如图片等。 
- wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 
- ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 
更详细的可参见菜鸟教程相关文档。
**Remember that: **
r : read(读)
w : write(写)
a : append(附上,在后面加上)
英语学得好,写代码都简单一点

今天不讲读写操。先讲关闭文件。
3.关闭文件
3.1 一般关闭文件
文件使用完毕后一定一定要关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的。
f.close()
酱就行了。

但是,打开文件,不一定都能打开呀,有时候打不开会报IOError,然后后面写的f.close()就不会被调用了。
有没有办法解决这个问题呢?
大佬们早解决了
优化版关闭文件
法一:try … finally …
try:
    f = open('G:\Python\secret.txt')
    print(f.read())
finally:
    if f:
        f.close()
[Jason:21, 179, 70, 18813975806],[K:22, 180, 75, 18813975111]
上面看起来很繁琐,再来优化:
法二:with open(xxx) as f:
with open('G:\Python\secret.txt') as f:
    print(f.read())
[Jason:21, 179, 70, 18813975806],[K:22, 180, 75, 18813975111]
今天主讲开关文件,后面讲解读写操作,嗯,see you next time!

Python 文件操作(1)的更多相关文章
- Python基础篇【第2篇】: Python文件操作
		Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ... 
- [Python学习笔记][第七章Python文件操作]
		2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ... 
- Python文件操作与函数目录
		文件操作 python文件操作 函数 Python函数学习——初步认识 Python函数学习——作用域与嵌套函数 Python函数学习——匿名函数 python内置函数 Python函数学习——递归 ... 
- 初学Python——文件操作第二篇
		前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ... 
- day8.python文件操作
		打开和关闭文件 open函数 用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. file = open(file_name [, access_ ... 
- 关于python 文件操作os.fdopen(), os.close(), tempfile.mkstemp()
		嗯.最近在弄的东西也跟这个有关系,由于c基础渣渣.现在基本上都忘记得差不多的情况下,是需要花点功夫才能弄明白. 每个语言都有相关的文件操作. 今天在flask 的例子里看到这样一句话.拉开了文件操作折 ... 
- Python之路Python文件操作
		Python之路Python文件操作 一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r&qu ... 
- python 文件操作 r  w  a
		python基础-文件操作 一.文件操作 对文件操作的流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 打开文件时,需要指定文件路径和以何等方式打开文件, ... 
- Python:文件操作技巧(File operation)(转)
		Python:文件操作技巧(File operation) 读写文件 # ! /usr/bin/python # -*- coding: utf8 -*- spath = " D:/dow ... 
- 小学生都能学会的python(文件操作)
		小学生都能学会的python(文件操作) 1. open("文件路径", mode="模式", encoding="编码") 文件的路径: ... 
随机推荐
- react做的简单的购物车
			###第一步 :首先电脑上已经安装react的脚手架 cnpm install create-react-app -g ###第二步 :创建项目 creact-react-app 项目 ... 
- 【Aizu - 0189】Convenient Location (最短路 Floyd算法)
			Convenient Location 直接翻译了 Descriptions 明年毕业的A为就业而搬家.就职的公司在若干城市都有办公室,不同天出勤的办公室也不同.所以A在考虑住在哪去各个办公室的时长最 ... 
- 静态链表过程演示及代码实现(A - B) U (B - A)
			静态链表说明 使用数组来实现链式存储结构,目的是方便在不设指针类型的高级程序设计语言中使用链式结构 c语言定义数据结构 #define MAX_SIZE 1000 // 所有的类型都统一定义为Elem ... 
- centos6.5搭建rabbitmq服务器(单机)
			安装编译工具 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel 安装Erlang 1. 下载erl ... 
- [转载]桥接与NAT
			NAT相当于是局域网中的局域网,把192.168.21.1当作外网ip,重新划分了一个网关(192.168.33.x) 网桥只是把网络桥接起来,还是原来的网关(192.168.21.x),虚拟机相当于 ... 
- BeginLinux Programming chapter16: X11桌面系统简介
			当前两个最流行的linux desktop environment: GNOME 和KDE, 两者对应的图形库分别是 GTK+ 和 QT. GNOME与KDE与X11的关系: X defines no ... 
- [转帖]CentOS 8 正式发布
			CentOS 8 正式发布 终于发布了.. https://news.cnblogs.com/n/640416/ 前几天刚弄完centos7.7 的环境. CentOS 8 官方正式发布了!!!C ... 
- Redis 集群_主从复制_哨兵模型
			1 redis集群简介 1.1 集群的概念 所谓的集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定.高效的状态. 1.1.1 使用redis集群的必要性 问题:我们已经部署好了 ... 
- 猴子补丁(Monkey Patching)
			猴子补丁是我在面试的时候接触的一到题,学python的时候,我根本就没有听说这个概念!那接下来我们来分析一下: 1.什么是猴子补丁? 2.猴子补丁的功能? 3.猴子补丁的应用场景? 一.什么是猴子补丁 ... 
- Swarm系列7--存储介绍
			存储介绍 1. 存储使用 与docker一样,在使用swarm服务级别的时候可以定义服务的存储需求, docker存储介绍参考: Docker之应用数据管理(volume/bind mount/tmp ... 
