转自 http://www.cnblogs.com/BeginMan/p/3166644.html

一、文件对象

我理解的文件对象就是一个接口,通过这个接口对文件进行相关操作。

《Python 核心编程》上说的很晦涩,这里没有深刻理解到,希望有人能解释给我听。

>>> f = open('demo.txt','r') >>> f <open file 'demo.txt', mode 'r' at 0x00CCCEC0> >>> type(f) <type 'file'>

二、相关函数

[1]、内建函数:open()

提供了初始化输入/输出(I/O)操作的通用接口,成功打开一个文件后会返回一个文件对象,否则发生IOError异常。语法如下:

file_object = open(file_name,access_mode = 'r',buffering = -1)

分析如下:

1):file_name:表示要打开文件名字的字符串,可以是相对路径也可以是绝对路径。
如:我在D盘新建一个空白名为out的文本文件,然后进行相关操作。

>>> f = open('../out.txt','w') >>> f.write('good') >>> f.close()

则打开该文件后,发现'good'已经写入进去了。

接下来使用绝对路径进行访问,如下:

>>> f = open('D:/out.txt','r') >>> f.read() 'good' >>> f.close()

2、可选变量access_mode也是字符串,代表文件打开模式。

注意:

1):使用'r'或'U'模式打开的文件必须已经存在

2):'w'模式打开的文件若存在则先清空,然后重新创建

3):'a'模式打开的文件是为了追加数据做准备的,所有写入的数据将追加到文件末尾。如果文件不存在,则自动被创建。

4):'+'代表可读可写

5):'b'代表二进制模式访问

6):默认情况下是 'r'

3、buffering可选参数,用于指示访问文件所采用的缓存方式。0表示不缓存;1表示只缓存一行,n代表缓存n行。如果不提供或为负数,则代表使用系统默认的缓存机制。

用处?这个麻烦有人能告诉我!

关闭文件:

打开文件消耗系统资源, 并且依赖于文件模式, 其它程序或许不能访问它们。这就是一旦操作完毕就该关闭文件的重要所在。

接上面的操作,加入还没有关闭:

>>> f.closed  #判断是否关闭
False
>>> f.close() #关闭方法
>>> f.closed True >>> f.tell() #如果已关闭,则一切针对文件操作都无效  Traceback (most recent call last): File "<pyshell#27>", line 1, in <module> f.tell() ValueError: I/O operation on closed file >>> 

[2]、工厂函数file()

与open()一样,可相互替换

>>> f = file('../out.txt','r') >>> f.read() 'good' >>> f.close()

三、相关方法

返回一个文件对象后(句柄),其实我也不清楚到底什么是句柄,这里摘自百度百科:

句柄,是整个windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实 例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的。 句柄是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象。

一般与文件相关的方法无非是:输入、输出、文件内移动、杂项

[1]、输入

1、read():读取字节到字符串中,有可选参数size,默认是-1,如果为-1或复数则文件将会被读取到文件末尾。

>>> f.read()
'good'
>>> f.read(2)
'go'

2、readline():读取文件的一行,包括行结束符。同read()也有个可选参数size。

3、readlines():读取所有(剩余的)然后将它们作为字符串列表返回,它有个可选参数sizhint代表返回的最大字大小。

>>> f = file('../out.txt','r') >>> f.readlines() ['good']

 [2]、输出

1、write():把含有文本数据或二进制数据块的字符串写入到文件中去。

2、writelines():针对列表操作,接受一个字符串列表作为参数,将它们写入文件,行结束符并不会被自动加入,如果需要的话必须在调用writelines方法前给每一行结尾加上结束符。

>>> f =  open('d:/out.txt','w') >>> f.writelines(['man']) >>> f.close() >>> f = open('d:/out.txt','r') >>> f.read() 'man'

【注意:】

当使用read()或者readlines()从文件中读取行时,Python并不会删除行结束符,这个操作留给了程序员。

>>> f.readlines()
['game is your life,game is your life,game is your life,game is your life,game is your life,[*]\n', 'game is your life,game is your life,game is your life[]'] --------------------------- >>> f = open('demo.txt','r') >>> data = [line.strip() for line in f.readlines()] >>> data ['game is your life,game is your life,game is your life,game is your life,game is your life,[*]', 'game is your life,game is your life,game is your life[]']

类似的,write()和writelines()也不会自动加入行结束符,应该自己添加。

>>> f = open('demo.txt','w') >>> f.writelines([' my name is BeginMan\n,I like coding']) >>> f.close()

打开该文件可查看:

 [3]、文件内移动

tell()、seek()方法

f = open('d:/out.txt','rb') print f.tell() #[1] f.seek(10,1) #[2] print f.tell() #10 print f.read(10) # BeginMan, print f.read(18) #I like coding. print f.tell() #38 """ 【1】:tell(): tell 方法确认了已经移到当前文件位置 一个文件对象维护它所打开文件的状态。文件对象的 tell 方法告诉你在打开文件中的当前位置。 因为我们还没有对这个文件做任何事,当前位置为 0,它是文件的开始处。 """ """ 【2】:seek(): 文件对象的 seek 方法在打开文件中移动到另一个位置。第二个参数指出第一个参数是什么意思: 0 表示移动到一个绝对位置 (从文件开始算起), 1 表示移到一个相对位置 (从当前位置算起), 还有 2 表示文件末尾 """

[4]、文件迭代

>>> f = open('d:/out.txt','rb') >>> for eachline in f: eachline 'my name is BeginMan,\r\n' 'I like coding.\r\n'

四、相关属性

file.closed:文件已被关闭,否则为False

file.mode:文件访问模式

file.name:文件名称

>>> f.mode
'r'
>>> f.name
'demo.txt'

转载于:https://www.cnblogs.com/nolonely/p/6626203.html

《转》Python学习(14)-对文件的操作(一)相关推荐

  1. Python学习14(文件)

    目录 一.文本文件和二进制文件 二.文件操作相关模块 三.创建文件对象open() 四.文本文件的写入 ·基本的文件写入操作 ·close()关闭文件流 ·write()/writelines()写入 ...

  2. Python学习(14)--内置函数

    Python学习(14)--内置函数 1.Python内置函数 在Python中有很多的内置函数供我们调用,熟练的使用这些内置函数可以让编写代码时事半功倍,所谓内置函数就是那些Python已经预定义并 ...

  3. linux环境编程 学习,学习linux环境高级编程首先学习的是文件的操作。因为有.pdf...

    学习linux环境高级编程首先学习的是文件的操作.因为有 学习 Linux 环境高级编程,首先学习的是文件的操作.因为有一句很有趣的话"Linux 下一切皆文件".所以掌握了文件操 ...

  4. Python学习笔记:文件(File)

    Python学习笔记:文件(File) 打开一个文件用于读写,在Python里十分简单,利用内置open函数,可以用绝对路径,也可以用相对路径. 默认模式是'r',只读模式. 文件句柄f是一个可迭代对 ...

  5. python学习笔记十-文件操作

    对文件操作流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 操作如下: 花间一壶酒,独酌无相亲. 举杯邀明月,对影成三人. 月既不解饮,影徒随我身. 暂伴月将 ...

  6. python 学习笔记 5 -- 文件输入输出

    本文主要介绍python下的文件输入输出操作,python的文件操作简单易用-通过本文相信你可以熟练掌握file和pickle这两种输入输出操作! 1.文件 你可以通过创建一个file类的对象来打开一 ...

  7. Python学习笔记之文件

    一.从文件中读取数据:有时候,往往会把相关的信息生成一个文件存储在里面,如果要使用文本文件中的信息,首先需要将信息读取到内存中.为此,你可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取. ...

  8. python json数据的文件读写操作

    python json数据的文件操作 代码 read_write_json.py #!/usr/bin/env python # -*- encoding: utf-8 -*- "" ...

  9. python基础语法-对文件的操作

    这里简单介绍基础的文件操作,基础的文件夹操作见:https://blog.csdn.net/zhouchen1998/article/details/81503819 对文件的操作对于数据的永久存储起 ...

最新文章

  1. Python 字符串及基本语句
  2. hadoop 配置项的调优
  3. 如何构建高可用和可伸缩的架构?
  4. 解析微服务架构与最佳实践
  5. bootstrap --- 表单
  6. 计蒜客可以做计算机编程吗,如果你的编程能力不足以支撑你成为工程师的野心,不妨到计蒜客上学学看...
  7. python读取大文件csv_实现读取csv文件,文件里面是有限个百分数成绩(99.6、76.8等等...
  8. linux mint 主题切换,详解如何在 Linux Mint 中更换主题
  9. matlab 数组名含变量,求助:如何将带有符号变量的运算结果储存到数组中
  10. 转大白话系列之C#委托与事件讲解大结局
  11. 玻璃及玻璃转变(Glass transition)
  12. 猿创征文|Android 11.0 12.0Launcher3中app列表页的app名称分两行显示
  13. leetcode695岛屿的最大面积
  14. pkuseg对文件分词时报错
  15. PHP error_reporting
  16. 用cat查看非常大非常大的文件是什么体验
  17. usb disconnect
  18. 什么是长连接,什么是短连接
  19. 计算机原理(CPU是如何进行工作的?)
  20. Windows服务(Service)安装及启动停止方案

热门文章

  1. php常用20函数,PHP常用函数
  2. k均值聚类图像分割matlab代码_用K均值聚类法为人类拍摄的首张黑洞照片进行分割...
  3. 图像特征点—SIFT特征点
  4. 私钥设置_私钥忘了怎么办,还能找回来吗?能
  5. c# 字典按ascii 排序_利用工作表函数,对字典键进行排序并给出对应重复个数
  6. 查看oracle的表空间使用,查看Oracle的表空间的使用情况
  7. java link 使用_使用 C 实现Java LinkList
  8. 广播站 PHP,让一实听见你的声音——“校园之声”广播站招募小记
  9. 使用Python,OpenCV实现简单的场景边界/拍摄转换检测器
  10. 和12岁小同志搞创客开发:手撕代码,做一款声控灯