open函数

  1.open函数: file=open(filename, encoding='utf-8'),open()函数是Python内置的用于对文件的读写操作,返回的是文件的流对象(而不是文件本身,所以使用的方法都是流对象的方法)。使用这个函数时可以指定encoding参数(Python2.7中不支持),因为Python代码在不同的平台环境中使用的默认编码方式不同,有可能会发生编译出错的问题。

  2. filename参数:在open中的文件名参数filename中,包含的路径表示虽然可以根据不同的环境使用斜杠和反斜杠,但在Python中表路径时,斜杠都是正确的。

  3. 文件操作对象file:流对象file,即open的默认模式下的返回值。使用for循环对对象file进行迭代时,每次迭代都会自动分离出一行(效果相当于对readlines结果的for循环遍历):

    • file.name:获取文件的文件名(包含路径),即传入open文件名参数。
    • file.encoding:获取文件的编码方式。
    • file.mode:获取文件的访问方式,若没有指定这个参数,open的默认访问方式为只读“r”,更多访问方式见下表。
    • file.closed:返回文件是否关闭的状态。
    • file.close():关闭文件(使用完一定及时使用这个函数关闭文件并释放系统资源)。
    • file.read(size/n):从当前定位(一般就是文件开始处)获取文件内容,返回整个文件内容的字符串(此时定位在文件尾,若再使用read()方法,会返回空字符串,因为已经到文件尾了),若指定了需要获取的字符数n(较低版本则是指定字节数size),可以给read方法传入参数,比如:read(3)表示从当前定位往后读取3个字符,则返回指定字符数的字符串。注意不能从一个字符的中间字节处读取,因为有的字符(比如中文)的表示不止一个字节,而定位是以字节来计算位置的,read()是以字符来计数的。
    • file.seek(offset, whence=0):使定位到特定字节处(若使用read()方法读完文件后还想再读取一次文件,可以使用seek(0)重新定位到文件开始处再读取),whence取值有0、1和2,0是默认值,表示文件头,1表示当前位置,2表示文件尾,例如file.seek(3, 1)表示定位到从当前位置往后三个字节处,file.seek(-5, 2)表示定位到从文件尾往前5个字节处。
    • file.tell():返回当前定位的字节位置。
    • file.readline():读取文件中的一行,并定位到下一行的开始处。
    • file.readlines():读取文件中的所有行,返回所有行为元素组成的列表。
    • file.write(s):将字符串写入到文件中,返回写入的字符数。
    • file.writelines(lines):将一个字符串列表写入文件,如果需要换行,则需要自己在每个字符串后面加上换行符。

  更多文件访问方式(此表来源:http://www.runoob.com/python3/python3-file-methods.html)

  

模式             描述
t 文本模式 (默认)。
x 写模式,新建一个文件,如果该文件已存在则会报错。
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
U 通用换行模式(不推荐)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

  


with创建临时运行环境

  作用:with用于创建一个临时的运行环境,运行环境中的代码执行完后自动安全退出环境。

  文件操作:使用open进行文件操作使建议使用with创建运行环境,可以不用close()方法关闭文件,无论在文件使用中遇到什么问题都能安全的退出,即使发生错误,退出运行时环境时也能安全退出文件并给出报错信息。

# 使用with创建运行时环境
with open('xxx.text', encoding='utf-8') as file:
file_content = file.read()
file.seek(0)
file_ten_characters = file.read(10)
print(file_content)
print(file_ten_characters)
#执行完with中的代码后自动退出运行时环境

Python学习笔记:open函数和with临时运行环境(文件操作)的更多相关文章

  1. Python学习笔记之函数

    这篇文章介绍有关 Python 函数中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中函数的使用技巧 1.函数文档 给函数添加注释,可以在 def 语句后面添加独立字符串,这样的注释被 ...

  2. 小甲鱼:Python学习笔记003_函数

    >>> # 函数>>> def myFirstFunction(params1,params2...): print("这是我的第一个函数!") ...

  3. Python学习笔记 - day6 - 函数

    函数 函数在编程语言中就是完成特定功能的一个词句组(代码块),这组语句可以作为一个单位使用,并且给它取一个名字.可以通过函数名在程序的不同地方多次执行(这叫函数的调用).函数在编程语言中有基本分为:预 ...

  4. Python 学习笔记12 函数模块

    函数的优点之一,使用它们可将代码块与主程序分离.通过给函数指定描述性的名称.可以让主程序非常好理解.但是如果将过多的函数和主程序放置在一起,会让文件显得非常凌乱.太多的代码混杂在一起,不方便管理.我们 ...

  5. python学习笔记(五)---函数与类

    函数 def为定义函数的一个标志 demo1: def greet_user(username): print("Hello, " + username.title() + &qu ...

  6. python学习笔记(4)-基本数据类型-数字类型及操作

    大学mooc 北京理工大学 python语言程序设计课程学习笔记 一.整数类型 可正可负,没有取值范围的限制(这个与c不同,c要考虑数据类型的存储空间).如pow(x,y),计算x的y次方,pow(2 ...

  7. Docker学习笔记之搭建 Java Web 项目运行环境

    0x00 概述 Java Web 泛指以 Java 程序为基础向外提供 Web 服务的技术及相关工具,狭义上来说,我们也可以说 Java Web 是由 Servlet 程序提供的 Web 服务. 对我 ...

  8. Python学习笔记系列——函数

    今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了.以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统.https:/ ...

  9. Python学习笔记(五)函数和代码复用

    函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...

随机推荐

  1. II play with GG(思维规律)

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 IG won the S champion ...

  2. 一道笔试题和UML思想 ~

    一句软件工程界的名言,让我想起了一个和一道笔试题有关的故事.希望更多的人了解 UML 背后的思想比他的语法更重要,是笔者写作本文的一点小愿望. 一.从一句软件工程名言说起 对很多事情的处理上,东西方都 ...

  3. Eclipse的安装与使用

    1安装 下载 http://www.eclipse.org 安装 (最好下载解压版的,不用安装) 安装目录中,不要出现空格与中文 例如,解压到:D:\codetool 2项目的创建 双击运行.exe文 ...

  4. OPEN SQL

    OPEN SQL 1.SELECT .INSERT.UPDATE.DELETE.MODIFYSELECT 命令包含如下从句:SELECT: 需要查询资料库指定表的那些列,是一行还是多行INTO: 查询 ...

  5. iOS 应用架构 (二)

    iOS 客户端应用架构看似简单,但实际上要考虑的事情不少.本文作者将以系列文章的形式来回答 iOS 应用架构中的种种问题,本文是其中的第二篇,主要讲 View 层的组织和调用方案.上篇主要讲 View ...

  6. 理解 JavaScript 的 async/await

    随着 Node 7 的发布,越来越多的人开始研究据说是异步编程终级解决方案的 async/await.我第一次看到这组关键字并不是在 JavaScript 语言里,而是在 c# 5.0 的语法中.C# ...

  7. apple-touch-icon-precomposed

    <link rel="apple-touch-icon-precomposed" href=""> apple-touch-icon-precomp ...

  8. ionic 2 起航(一)

    最近的工作项目开始接触Ionic2.学习了一段时间,现在跟大家分享一下. 什么是Ionic 2?     百度一下,ionic是一个用来开发混合手机应用的,开源的,免费的代码库.可以优化html.cs ...

  9. freopen()函数

    freopen函数通过实现标准I/O重定向功能来访问文件,而fopen函数则通过文件I/O来访问文件. freopen函数在算法竞赛中常被使用.在算法竞赛中,参赛者的数据一般需要多次输入,而为避免重复 ...

  10. [学习笔记]Linux下mysql的基础操作

    命令 #查看版本 mysql --version   #进入mysql 命令 mysql -u root -p mysql -u root@localhost (没有密码的情况)   #创建数据库 c ...