1.创建文件

>>> file('test.txt','w')   -->在当前路径下创建文件

test.txt是文件名

w是打开文件的方式,r是读,w是写,a是追加,如果当前路径没有这个文件,用w可以直接创建

2.往文件中写内容

>>> file('test.txt','w').write('hello')  #如果是以'w'模式打开的,那么会重新写这个test.txt文件,原来的内容不再有。

正确的写法:

>>> f = file('test.txt','w')

>>> f.write('hello\n')    #\n 是换行

>>> f.write('hello2')  #现在写的数据还在内存里边,没有写到硬盘上,此时查看文件是空的,即便原来有数据。

>>> f.close() #把文件关掉就写到硬盘上了,只要是用w模式打开的写数据,就会覆盖掉以前的数据,产生一个新文件

3.读文件

如果是以w模式打开文件的,写完数据之后不想关闭文件,但是还想看到文件中的内容,用flush(),但是这样会报错,因为你用的是w模式打开的,所以没法读取,在这儿只是想引进flus()的使用方法

不写打开文件模式,默认是以r来打开文件的

>>> f = file('test.txt')
>>> f.read()   #read()方法读取出来的是字符串,全部读取出来
'hellohello\n'

>>> f.readline()   #这个是读取文件一行的方法,在这儿为什么会是空的呢?因为在刚打开文件时,我们用f.read()读取了一次,相当于从内存中把这个字符串全部读取了出来,
''             #这时候指针就移到了字符串的后边,那同时也就没有了内容。

可以通过这个来验证以上内容是否正确

>>> f = file('test.txt')   #关闭文件后重新打开
>>> f.tell()        #查看文件内容在内存指针的位置
0             #结果是0,也就是没读取文件之前指针在最前边
>>> f.readline()    #读取test.txt中的一行
'hello\n'        #显示结果以字符串的形式出现
>>> f.readline()
'hello\n'        #test.txt总共写了两行hello
>>> f.readline()    #在读取的时候就没有内容了,因为第三行没有内容,所以显示空
''
>>> f.tell()      #再次调用查看指针在内存中的位置
12
>>>

>>>f.seek(0)      #将指针移到0位置上,就可以重新读取内容了

>>> f.tell()

0

>>> f.seek(0)

>>> f.readines() #以列表的方式读取出来,然后可以精确的拿出第几行,但是是读到内存中去的,占用内存空间,文件太大的时候会卡

f.xreadlines() #是读取文件所有行的迭代器,如果一个G的日志文件,用这种方法比直接用readline()要快,因为readline()这个方法是先读到内存在打印,所以在打印1G的日志文件时会先等一会儿才会打印,而xreadline()会直接打印,内存中读一行然后扔一行

4.遍历文件,两种遍历方法。

#!/usr/bin/env python
f = file('auth.log')
for line in f.xreadlines():
    print line,

#!/usr/bin/env python
while True:
     line = f.readline()
     print line,
     if not line:break

5.读取文件的模式

如果文件以读写模式打开('r+'),那么写的时候是根据指针的位置来覆盖文件的,如果先读了一行,在往文件写的时候,会覆盖第二行的字符,而不是整个第二行!

('rb')可以处理二进制文件。如果windows过来的python文件,在linux上处理的时候用这个二进制文件处理。换平台的时候有时候会报错。

6.文件内容替换,批量更改文件

for line in fileinput.input("filepath",inplace=1):   #inplace=1 表示文件里的内容也同时改掉,如果是0的话,文件里的内容不会改掉,只是会打印出来。

line = line.replace("oldtext","newtext")

print line,   #必须print,没有print更改失败!

backup=''  #修改文件之前做备份,只需要加个后缀即可

#!/usr/bin/env python
import fileinput
for line in fileinput.input("test.txt",inplace=1,backup='.bak'):
line = line.replace("hello2222","hello2")
print line,

备份的文件没有被修改,test.txt.bak就是备份的文件

7.存放不同类型的文件到同一个文件中,以二进制存储

#!/use/bin/env python

improt struct

n=1600    整数类型

x=92.60   浮点型

b=True    bool型

s='!@中国'   字符串型

sn=struct.pack('if?',n,x,b)   将不同类型转换成二进制方法

f=open('erjinzhi.dat','wb')

f.write(sn)

f.write(s)

f.close

python文件处理复习的更多相关文章

  1. 课程 python 文件操作复习

    # 文件处理 # 打开文件 #open('路径','打开方式','指定编码方式') # 打开方式 r w a r+ w+ a+ b #r+ 打开文件直接写 和读完再写 # 编码方式 —— utf-8 ...

  2. Linux下Python 文件内容替换脚本

    Linux下Python 文件替换脚本 import sys,os if len(sys.argv)<=4: old_text,new_text = sys.argv[1],sys.argv[2 ...

  3. 【Python文件处理】递归批处理文件夹子目录内所有txt数据

    因为有个需求,需要处理文件夹内所有txt文件,将txt里面的数据筛选,重新存储. 虽然手工可以做,但想到了python一直主张的是自动化测试,就想试着写一个自动化处理数据的程序. 一.分析数据格式 需 ...

  4. Python文件使用“wb”方式打开,写入内容

    Python文件使用"wb"方式打开,写入字符串会报错,因为这种打开方式为:以二进制格式打开一个文件只用于写入.如果该文件已存在则将其覆盖.如果该文件不存在,创建新文件. 所以写入 ...

  5. Python 文件操作函数

    这个博客是 Building powerful image classification models using very little data 的前期准备,用于把图片数据按照教程指示放到规定的文 ...

  6. python文件I/O(转)

    Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...

  7. python 文件操作总结

    Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...

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

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

  9. python文件和元组

    python文件操作 相较于java,Python里的文件操作简单了很多 python 获取当前文件所在的文件夹: os.path.dirname(__file__) 写了一个工具类,用来在当前文件夹 ...

随机推荐

  1. 双向链表--首页大小不一卡片排序 --- react --- js

    1.4中类型(grid_type)的卡片:1:大方块:2:竖长块:3:横长块:4:小方块 var order = 0; // 创建链表 function List(head) { this.head ...

  2. 关于静态资源是否应该放到WEB-INF目录

    首先,css/js/html没有必要放在WEB-INF下. 最终这些会被原封不动的展现在客户端,所以访问安全根本就不会成为问题. jsp放在web-inf下,原因主要有两个 远古时代的模式会把业务逻辑 ...

  3. selenium(七)expected_conditions EC

    判断一个元素是否存在,如何判断alert弹窗出来了,如何判断动态的元素等等一系列的判断,在selenium的expected_conditions模块收集了一系列的场景判断方法, 一.功能介绍和翻译 ...

  4. 读书笔记 C# 接口之浅析

    一.接口可以包含 属性.方法.事件和索引器: 二.接口不能被实例化: 三.一个类可以继承多个接口: 四.接口不能包含方法的实现: 五.继承接口的类必须实现接口中所有成员: 六.显式实现接口的成员,不能 ...

  5. XML(二)

    XML XML介绍 1.什么是xml? 概念:XML(EXtensible Markup Language)XML 指可扩展标记语言(EXtensible Markup Language) 可扩展:我 ...

  6. 3.5 C++间接继承

    参考:http://www.weixueyuan.net/view/6362.html 总结: 假设类C继承自类B,类B继承自类A.那么类C中的除了能够继承B类的成员函数和成员变量外,同样也能继承B类 ...

  7. doctype和Quirks模式

    doctype: 告诉浏览器使用什么模式去渲染页面,可能会影响页面的css渲染和js代码的执行. DTD :为了兼容旧的浏览器渲染方式,将DTD作为参数告诉浏览器使用什么模式渲染页面.始于IE6; 1 ...

  8. CountDownLatch在多线程程序中的应用

    一.CountDownLatch介绍 CountDownLatch是JDK1.5之后引入的,存在于java.util.concurrent包下,能够使一个线程等待其他线程完成动作后再执行.构造方法: ...

  9. W phase 学习

    W phase 的组成:(相关文献发现W phase适用于6级以上的地震) P, PP,S,SS,SP,PS等等长周期的震相: 它的传播机制和whispering gallery 相似. 从简振理论来 ...

  10. leetcode第15题:三数之和

    给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以包含重复的三元组. ...