1、常用函数:

  1. fileObject.read([size])
    size为读取的长度,以byte为单位。如果不指定参数,表示一次性读取全部
    内容,以字符串形式返回,并且每一行结尾会有一个"\n"符号。
    代码示例1:

    with open("text.txt","r") as pf:
    content = pf.read()
    print content

结果:
abcede
123
this is a test文件操作jfedcba

代码示例2:

with open("text.txt","r") as pf:content = pf.read(2)print content

结果:
读取:ab

  1. fileObject.readline( [size] )
    一行,如果给定了size,有可能返回的只是一行的一部分,以字符串的形式返
    回,并且结尾会有一个换行符"\n"。读完一行,文件操作标记移动到下一行的
    开头
    列题1
with open("text.txt","r") as pf:content = pf.readline()print content

结果:
大学之道,在明明德,在亲民,在止于至善。
列题 1:

with open("text.txt","r") as pf:content = pf.readline(15)print content

结果:
大学之道,

  1. fileObject.readlines( [size] )
    把文件每一行作为一个list的一个成员,是一个字符串,并且结尾会一个换行符"\n",并返回这个list。这个函数的内部是通过循环调用readline()来实现的。如果指定了size参数,表示读取文件指定内容的长度,此时就有可能只能读取文件的一部分

with open("text.txt","r") as pf:content = pf.readlines()print contentfor line in content:print line

结果:

  1. fileObject.write( str )
    把str写到文件中,默认是不加换行符的,所以如果想换行的话,得手动加入换行符'
with open("test.txt","w") as pf:pf.write("我是最帮的!!\n学习文件写入操作")

结果:
我是最帮的!!
学习文件写入操作

  1. fileObject.writelines( seq )
    把seq(序列)的内容全部写到文件中(多行一次性写入)。也不会自动加入换行符
    如:
content = "我是最帮的!!\n学习文件写入操作,加油!!!"
with open("test.txt","a") as pf:pf.writelines(content)

结果:
我是最帮的!!
学习文件写入操作我是最帮的!!
学习文件写入操作,加油!!!

  1. fileObject.close()
    File 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。用 close()方法关闭文件是一个很好的习惯。如果文件关闭后,还对文件进行操作就会产生ValueError错误,但如果不及时关闭文件,有可能产生句
    柄泄露,丢失数据
    #打开文件准备写文件
fp = open( "c:\\test.txt",'w')
print u"文件名:", fp.name
#关闭文件
fp.close()
print u"文件是否关闭:", fp.closed

结果:
文件名: test.txt
文件是否关闭: True

  1. fileObject.flush()
    该函数是将缓冲区中的内容写入硬盘

  2. fileObject.tell()
    返回文件操作标记的当前位置,以文件的开头为基准点
with open("test.txt","r") as pf:print u"当前文件操作标记位置为:", pf.tell()line = pf.readline()print u"读取一行后文件操作标记位置为:", pf.tell()

结果:
当前文件操作标记位置为: 0
读取一行后文件操作标记位置为: 23

  1. fileObject.seek( offset[, from ] )
    tell()方法告诉你文件内的当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后。seek(offset [,from])这是一个文件定位函数,该方法改变当前文件的位置。 Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。如果from被设为0(默认值),这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将为参考位置。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。测试文件test.txt,内容如下:
with open("test.txt","r") as fp:str = fp.read(18)print u"读取的字符串是 : ", str# 查找当前位置position = fp.tell()print u"当前文件位置 : ", position# 把指针再次重新定位到文件开头position = fp.seek(0, 0)str = fp.read(18)print u"重新读取字符串 : ", str

结果:
读取的字符串是 : 我是最帮的!
当前文件位置 : 18
重新读取字符串 : 我是最帮的!

fileObject.truncate( [size] )
把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

with open("test.txt","r") as fp:print "Name of the file: ", fp.nameline = fp.readline()print "Read Line: %s" % (line)print fp.tell()# Try to read file nowremainingLine = fp.readline()print "Read Line: %s" % (remainingLine)
  • linecache
    模块允许从任何文件里得到任何的行,并且使用缓存进行优化,常见的情况是从单
    个文件读取多行。
  • linecache.getlines(filename)
    从名为 filename 的文件中得到全部内容,输出为列表格式,以文件每行为列表中的一个元素,
    并以 linenum-1 为元素在列表中的位置存储
  • linecache.getline(filename,lineno)
    从名为 filename 的文件中得到第 lineno 行。这个函数从不会抛出一个异常–产生错误时它将
    返回”(换行符将包含在找到的行里)。
    如果文件没有找到,这个函数将会在 sys.path 搜索。
  • linecache.clearcache()
    清除缓存,如果你不再需要先前从 getline() 中得到的行
  • linecache.checkcache(filename)
    检查缓存的有效性。如果在缓存中的文件在硬盘上发生了变化,并且你需要更新版本,使用
    这个函数,执行此函数会讲淘汰的内容删除。如果省略 filename,将检查缓存里的所有条目。
  • linecache.updatecache(filename)
    更新文件名为 filename 的缓存。如果 filename 文件更新了,使用这个函数可以更新
  • linecache.getlines(filename)
    返回的列表。如果出错,则返回空列表。

    1. 删除空行的方法
    fp = open(r'test.txt')aList = []for item in fp:if item.strip():aList.append(item)fp.close()fp = open(r'test2.txt', 'w')fp.writelines(aList)
def delblankline(infile, outfile):""" Delete blanklines of infile """infp = open(infile, "r")outfp = open(outfile, "w")lines = infp.readlines()for li in lines:if li=='\n': #不同操作系统下可能会有不同print u'空行'if li.split():outfp.write(li)infp.close()outfp.close()if __name__ == "__main__":
delblankline("c:\\1.txt","c:\\2.txt")

列题:
数据文件:data.log
20160215 000148|0|collect info job start|success|
20160215000153|0|collect info job
end|success|resultcode = 0000
20160216000120|0|collect info job start|success|
20160216000121|0|collect info job
end|success|resultcode = 0000
20160217000139|0|collect info job start|success|
20160217000143|0|collect info job
end|success|resultcode = 0000
数据分析需求:
每行内容需要生成以每行
首年月日为名称的文件,
文件内容写入|0|后的所有
行内容(也包括|0| )

算法分析:
遍历每一行,每行取头8个字母
新建文件,文件名为首8个字母,然后把第15字符后的所有字
符拷贝到文件中
关闭文件

fp =open("e:\\data.log")
for line in fp.readlines():filename = line[:14]content = line[14:]with open("e:\\"+filename+".txt","w") as fp2:fp2.write(content+"\n")fp.close()

本文转自 知止内明 51CTO博客,原文链接:http://blog.51cto.com/357712148/2060672,如需转载请自行联系原作者

python文件操作二相关推荐

  1. Python 文件操作二

    readlines 就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素 #coding=utf-8 f = ...

  2. 第十二章 Python文件操作【转】

    12.1 open() open()函数作用是打开文件,返回一个文件对象. 用法格式:open(name[, mode[, buffering[,encoding]]]) -> file obj ...

  3. 初学Python——文件操作第二篇

    前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...

  4. python关闭读写的所有的文件-Python文件操作:文件的打开关闭读取写入

    Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文 ...

  5. Python文件操作学习总结

    Python读写文件 1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open( ...

  6. python文件操作解码_python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...

  7. python文件操作实验总结,[干货分享]Python文件操作技巧总结

    引言 小伙伴们,今天给大家讲解一下python程序下的文件操作完整技巧梳理,都是笔者总结的干货.通过本文阅读,不仅可以带来生产力提升,也可以开发小脚本为生活带来乐趣.         首先不知道大家对 ...

  8. python对文件操作的相关函数_第六章、Python文件操作

    第六章.Python文件操作 Python可以对文件进行查看.创建等功能,可以对文件内容进行添加.修改.删除,且所使用到的函数在Python3.5.x为open,在Python2.7.x同时支持fil ...

  9. 不是python文件操作的相关函数_从零开始学Python(七):文件存储I/O流和异常捕捉

    这两天在搞小程序开发,耽搁了一下更新的进度,今天补上.一个完整的前端程序肯定离不开数据存储和网络两个模块,今天我们就先来讲讲python中的一种常见数据存储:文件存储!~! 文件存储(I/O操作) 何 ...

最新文章

  1. CV竞赛项目研究:脊柱疾病诊断(天池,GPU赛道,2020年9月)
  2. 微生物组数据库(http://egcloud.cib.cn)正式上线
  3. 干货 | 100+个NLP数据集大放送,再不愁数据!
  4. 离职后竟半夜偷溜回办公室写代码?一个为自由软件而战斗的程序员
  5. 恩平服务器维修,四月 2021 | EDUP
  6. RTTI、dynamic_cast、typeid、虚函数表
  7. shell定时执行java,shell学习之定时运行作业
  8. 药一点进销存管理软件_gsp管理规范_财务管理软件
  9. tomcat6url请求400错误(%2F与%5C)
  10. 数据挖掘中的关联规则
  11. 火遍全网的2000款热门短视频剪辑素材+经典音效包素材来了
  12. php代码输出笑脸,利用HTML5中的Canvas绘制笑脸的代码
  13. [总结]mac pro 提示“USB设备已停用”导致外接显示器黑屏
  14. Fifo中Underflow信号的含义
  15. AVFoundation 学习资源列表
  16. 2.zookeeper
  17. 自动化测试的理解总结与感悟
  18. Day3 4月29日
  19. 网络通信中的加密解密及openssl和创建私有CA详解
  20. 没有SOA,CIO 将面临什么

热门文章

  1. boost::fusion::detail::and_用法的测试
  2. VTK:Points之CompareExtractSurface
  3. OpenCV摄像机videocapture camera的实例(附完整代码)
  4. OpenGL Multi Texture多重纹理的实例
  5. QT的QReadLocker类的使用
  6. C和C++线性表的顺序存储结构
  7. 「Apollo」Apollo感知汇总
  8. 1.18.2.5.Table APISQL(查询表、Table API、SQL、混用Table API和SQL、输出表、翻译与执行查询、Blink planner、Old planner)等
  9. rocketmq集群安装部署过程(4.0.0版本)、安装中的常见问题举例
  10. fiddler filters 使用(fiddler只显示指定请求,fiddler不显示指定请求,即filter请求过滤)转自:http://blog.csdn.net/notejs/article/