今天大佬给了个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. [多转合成] 使用pycaffe保存各个层的特征图

    # coding=utf-8 #python2 caffe_visualize.py import numpy as np import matplotlib.pyplot as plt import ...

  2. U盘防病毒

    1.待查 http://jingyan.baidu.com/article/a3f121e4ced14ffc9052bbca.html

  3. 轮播图CSS

    css3中的animation:动画名 持续时间 动画的速度曲线 动画开始之前的延迟 动画播放的次数 是否应该轮流反向播放动画 动画播放次数:n(定义应该播放多少次动画) : infinite(无限循 ...

  4. c# 面向对象/继承关系设计

    继承 RTTI RTTI 概念 RTTI(Run Time Type Identification)即通过运行时类型识别,程序能够使用基类的指针或引用来检查着这些指针或引用所指的对象的实际派生类型. ...

  5. 《Mysql - SQL优化》

    一:在查询语句时,应该注意的优化问题 - SELECT语句务必指明字段名称 - SELECT * 会增加很多不必要的消耗(CPU.IO.内存.网络带宽) - 同时会让 Mysql 优化器无法优化 -  ...

  6. Go语言学习笔记(7)——函数和方法

    Go语言中同时有函数和方法! 函数: go程序必须要包含一个main函数.main函数不能有任何参数和返回值! 1. 定义方法示例: func max(num1, num2 int) int { // ...

  7. WebApi 全局异常与局部异常

    全局异常过滤器 public class ApiExceptionFilter:ExceptionFilterAttribute { private IHostingEnvironment _env; ...

  8. XML-RPC-2RPC

    远程过程调用协议 RPC一般指远程过程调用协议 RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协 ...

  9. Snort Inline IPS Mode

    Snort Inline IPS Mode https://forum.netgate.com/topic/143812/snort-package-4-0-inline-ips-mode-intro ...

  10. Linux查看系统及版本信息

    1.查看操作系统版本cat /proc/version 2.查看系统发行版cat /etc/issue 或cat /etc/redhat-release 3.查看系统内核信息uname -a