文件基本操作流程:

一、 创建文件对象

二、 调用文件方法进行操作

三、 关闭文件(注意:只有在关闭文件后,才会写入数据)

fh = open('李白诗句','w',encoding='utf-8')
fh.write('''弃我去者,昨日之日不可留;
乱我心者,今日之日多烦忧。
长风万里送秋雁,对此可以酣高楼。
蓬莱文章建安骨,中间小谢又清发。
''')
fh.close()

open()函数的不同模式:

读操作

read()  #默认显示所有文本

fh = open('李白诗句',encoding='utf-8')
print(fh.read())
>>>  弃我去者,昨日之日不可留;
   乱我心者,今日之日多烦忧。
   长风万里送秋雁,对此可以酣高楼。
   蓬莱文章建安骨,中间小谢又清发。

read(4)  #显示4个字符

fh = open('李白诗句',encoding='utf-8')
print(fh.read(4)) #显示4个字符
>>> 弃我去者

readline()  #只读取一行,每次调用输出一行

fh = open('李白诗句',encoding='utf-8')
print(fh.readline())
['弃我去者,昨日之日不可留;]

readlines()   #将文件中各行读出来,放到一个列表中返回。列表中每个元素都是文件的一行,并且都是字符串

fh = open('李白诗句',encoding='utf-8')
print(fh.readlines())
['弃我去者,昨日之日不可留;\n', '乱我心者,今日之日多烦忧。\n', '长风万里送秋雁,对此可以酣高楼。\n', '
蓬莱文章建安骨,中间小谢又清发。\n', '俱怀逸兴壮思飞,欲上青天览明月。\n', '抽刀断水水更流,举杯消愁愁更愁。\n', '人生在世不称意,明朝散发弄扁舟。']

写操作

write()  #把文件写入缓冲区,当文件关闭时才会写入内存

对于大数据文件:

如果文件很大,乃至于内存空间不足,就不能继续使用 read()或者readlines()操作

因为文件是可迭代的对象,直接用 for 来迭代即可

fh = open('李白诗句',encoding='utf-8')
number = 0
for i in fh: # 这是for内部将f对象做成一个迭代器,用一行去一行。
number += 1
print(i.strip())
弃我去者,昨日之日不可留  
   乱我心者,今日之日多烦忧。
   长风万里送秋雁,对此可以酣高楼。
   蓬莱文章建安骨,中间小谢又清发。

其他操作方法:

1、tell() 查看光标当前的位置

2、seek()

   seek(offset ,[whence]) 方法改变当前文件的位置

   offset变量表示要移动的字节数。whence变量表示要从哪个位置开始偏移

   注意:默认以文件的开头未参照物进行移动,即 whence = 0,这时候 offset 必须是大于等于0 的整数

      当 whence = 1时,表示从当前位置开始计算偏移量。如果 offset 是负数,表示从当前位置向前移动;如果 offset 是正数,表示从当前位置向后移动

      当 whence = 2时,表示相对文件末尾移动

3、使用 with 语句操作(在 with 语句中就不用close()了)

with open('李白诗句','r',encoding='utf-8') as fh:
print(fh.readline())
>>> 弃我去者,昨日之日不可留;

4、flush()  用来刷新缓冲区,将缓冲区中的数据立刻写入文件,同时清空缓冲区

5、truncate() 用于截断文件,如果指定了可选参数 size,则表示保留前size 个字节,删除 size 后面的所有字符。 如果没有指定 size,则从当前位置起截断。

        不能在r模式下

        在w模式下:先清空,再写,再截断

        在a模式下:直接将指定位置后的内容截断

Python学习 :文件操作的更多相关文章

  1. python学习 文件操作

    一.python打开文件 #=====================python 文件打开方式 open()===================== # open(fileName,type) t ...

  2. Python学习---文件操作的学习1208

    1.1. 对文件操作基本操作: 操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 注意:pyton中操作的文件是utf8保存的,打开文件时open函数是通过操作系统 ...

  3. python学习——文件操作

    打开文件 f = open(文件名, 文件打开模式,文件编码) ‘w’:只写模式,它是只能写,而不能读的.如果用’w’模式打开一个不存在的文件,则会创建新的文件开始写入:如果用’w’模式打开一个已存在 ...

  4. Python :open文件操作,配合read()使用!

    python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...

  5. 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容

     孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...

  6. 孤荷凌寒自学python第三十三天python的文件操作初识

     孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...

  7. Python 常见文件操作的函数示例(转)

    转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...

  8. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  9. python中文件操作的其他方法

    前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...

  10. Python常见文件操作的函数示例

    # -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...

随机推荐

  1. Service Broker完成实例之间的会话详细解读

    首先了解service broker是什么东西: Service Broker 是数据库引擎的组成部分,因此管理这些应用程序就成为数据库日常管理的一部分. Service Broker 为 SQL S ...

  2. 扫描FTP,保存文件

    1.需求:某公司ftp服务器中一个文件夹中有30个文件(文件名字是不同的),每五分钟产生一个新的文件,同时删除这三十个文件中最早产生的文件,该文件夹中始终保持30个文件. 现在需要采集一周的数据做研究 ...

  3. 解决SQLite打开已有路径下的db问题

    最近遇到的需要加载已有路径下(sd card下)db的问题,找了一下资料,以下是解决的方法,仅供参考(转载自eoe): SQLiteOpenHelper 是Android框架为我们提供的一个非常好的数 ...

  4. 如何读写json文件

    代码如下: import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io. ...

  5. FFT抄袭笔记

    你看我都不好意思说是学习笔记了,毕竟\(FFT\)我怎么可能学得会 那就写一篇抄袭笔记吧ctrl+c真舒服 先从多项式说起吧 1.多项式 我们定义一个多项式 \[F(x)=\sum_{i=0}^{n- ...

  6. CENTOS 6 通过YUM升级GCC到4.7/4.8

    第一阶段:升级到4.7 [root@01314.CN ~]# cd /etc/yum.repos.d [root@01314.CN yum.repos.d]# wget http://people.c ...

  7. Educational Codeforces Round 10 D. Nested Segments 【树状数组区间更新 + 离散化 + stl】

    任意门:http://codeforces.com/contest/652/problem/D D. Nested Segments time limit per test 2 seconds mem ...

  8. c++ 单引号和双引号

    c++中单引号表示一个字符,双引号表示字符串 python中单引号与双引号是一样的

  9. 关于layui问题

    编辑: $('#Teacher').find('option').each(function(){ $(this).attr('selected',$(this).val()==data.tid); ...

  10. 【luogu P3366 最小生成树】 模板

    这里是kruskal做法 当然prim也可以,至于prim和kruskal的比较: Prim在稠密图中比Kruskal优,Kruskal在稀疏图中比Prim优. #include<bits/st ...