今天大佬给了个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)的更多相关文章

  1. Python基础篇【第2篇】: Python文件操作

    Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...

  2. [Python学习笔记][第七章Python文件操作]

    2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...

  3. Python文件操作与函数目录

    文件操作 python文件操作 函数 Python函数学习——初步认识 Python函数学习——作用域与嵌套函数 Python函数学习——匿名函数 python内置函数 Python函数学习——递归 ...

  4. 初学Python——文件操作第二篇

    前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...

  5. day8.python文件操作

    打开和关闭文件 open函数 用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. file = open(file_name [, access_ ...

  6. 关于python 文件操作os.fdopen(), os.close(), tempfile.mkstemp()

    嗯.最近在弄的东西也跟这个有关系,由于c基础渣渣.现在基本上都忘记得差不多的情况下,是需要花点功夫才能弄明白. 每个语言都有相关的文件操作. 今天在flask 的例子里看到这样一句话.拉开了文件操作折 ...

  7. Python之路Python文件操作

    Python之路Python文件操作 一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r&qu ...

  8. python 文件操作 r w a

    python基础-文件操作   一.文件操作 对文件操作的流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件       打开文件时,需要指定文件路径和以何等方式打开文件, ...

  9. Python:文件操作技巧(File operation)(转)

    Python:文件操作技巧(File operation) 读写文件 # ! /usr/bin/python #  -*- coding: utf8 -*- spath = " D:/dow ...

  10. 小学生都能学会的python(文件操作)

    小学生都能学会的python(文件操作) 1. open("文件路径", mode="模式", encoding="编码") 文件的路径: ...

随机推荐

  1. Newton法(牛顿法 Newton Method)

               1.牛顿法应用范围                          牛顿法主要有两个应用方向:1.目标函数最优化求解.例:已知 f(x)的表达形式,,求 ,及g(x)取最小值时 ...

  2. 微服务之Polly熔断策略

    NET Core 微服务之Polly熔断策略 紧接着上一篇说,咱们继续介绍Polly这个类库 熔断策略(Circuit-breaker) 如果调用某个目标服务出现过多超时.异常等情况,可以采取一定时间 ...

  3. printf特殊用法

    printf("%*.*lf\n", a, b, c); //表示a宽距,保留b位小数 用这种方法可以通过输入控制a和b

  4. IO操作-BIO

    BIO:block IO,即同步阻塞IO,主要应用于文件 IO 和网络 IO 这里主要说一下网络IO,以Socket编程为例进行说明 1.先建立Socket服务端 //BIO 服务器端程序 publi ...

  5. 六种Socket I/O模型幽默讲解

    老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系.他们的信会被邮递员投递到他们的信箱里.这和Socket模型非常类似.下面就以此为例讲解Socket I/O模型. 零:阻塞模型 老陈非常 ...

  6. windows使用sqlpus连接oracle 数据库

    1.先安装好Instant Client程序. 2.打开cmd 执行sqlplus命令,如果出现如下图 2.说明需要把oracle install 的bin目类 添加系统环境path中,如下图添加环境 ...

  7. 关于arm 的字节对齐

    一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这 ...

  8. 剑指Offer(4)——替换空格

    题目: 请实现一个函数,把字符串中的每个空格替换成"%20".例如输入“We are happy.”,则输出“We%20are%20happy.”. 思路: 如果按照顺序从前往后依 ...

  9. php底层源码之数组

    数组key和value的限制条件 <?php $arr = array( 1 => 'a', "1" => "b", 1.5 => &q ...

  10. MySQL NULL 使用带来的坑

    MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...