1.     读取文件
方法: all_the_text = open('thefile.txt').read()
但是为了安全起见还是给打开的文件对象指定一个名字,这样在完成之后可以迅速关掉,防止无用文件对象占用内存;
例子:
file_object = open('thefile.txt',r)
try:
all_the_text = file_object.read() #read()将文件中所以字符都读到all_the_text中去变成了一个巨大的字符串,
finally:
file_object.close() 不一定要加try,finally语句,但是加了更好,可以保证文件对象被关闭即使在读取中发生了严重错误;
 
 
如果要读入100个字符也可以直接:
text=file.read(100),
 
如要一行行处理还可以:
ff = file_object.readlines()
  #读出来是 list 类型,而且每行末尾都有'\n'符号;既然是一行行的,那么打印也要一行行的显示:
  for line in ff:
       print line            #此时line类型是string,而ff依然是list类型
  #这样打印出来不会乱,而如果直接 print   ff 则会一次性打印整个ff序列,而汉子在序列里面是ASCII,会导致汉子打印不出来,而且特别乱;所以要一行行的打印’
 
而最简单方法:
for line in file_object:
line = line.rstrip('\n')
print line
此时line是string类型,但每行末尾都有'\n'符号;可以再for主体部分加一句:line = line.rstrip('\n') 在每行末尾去掉'\n'符号,而line.restrip()则默认去掉空白符;
 
2.    写入文件
最方便的一个方法:
 
open('thefile.txt','w').write(all_the_text)

  

但是最好还是给文件对象指定一个名字,这样方便关闭文件对象
file_object = open('thefile.txt','w')
file_object.write(all_the_text)
file_object.close() 
 
实际上用‘w’或者'wb'打开的文件,都是空文件;哪怕是这个文件不是空文件,用这两种方式打开后,也会被清空;这种情况,就要用到‘a’或者‘ab’来打开则不会清空;
如果用'a+'这种方式来打开的话不能写的时候文件不会被清空,而且还可以读取文件呢;
注意:无论读还是写,文件打开之后游标会一直往后走,直到关闭;当然也可以使用seek()函数来控制游标
 
3.    搜索和替换文件中的文本
replace(search_text,replace_text),用于字符串的替换;
 
4.    从文件中读取指定的行
enumerate():遍历序列中的元素以及下标
>>> for i,j in enumerate(['a','b','c']):
... print i,j
...
0 a
1 b
2 c

  

函数模块:
def getline(thefilepath,desired_line_number):
if desired_line_number < 1:
return ' '
for current_line_number,line in enumerate(open(thefilepath,'ru')):
if current_line_number == desired_line_number-1:
return line
return ''
 
库文件 linecache
当对文件进行多次读取时,linecache,特别有用,它读取并缓存指定文件里的所有文本;用clearcache()来释放被用作缓存的内存,checkcache()来确保缓存中的存储是最新的;
 
import linecache
theline = linecache.getline(thefilepath,desired_line_number)
#简单一句就可以得到文件指定行的文本了,方便吧;

  

 
5.    处理文件中的每一个单词
首先看一个函数split()
Python split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
实例:
#!/usr/bin/python
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";print str.split( );print str.split(' ', 1 );
以上实例输出结果如下: ['Line1-abcdef', 'Line2-abc', 'Line4-abcd']['Line1-abcdef', '\nLine2-abc \nLine4-abcd']
 
对每一个词做一些处理,最好的就是两重循环,一个用于处理行,一个用于处理单词
for line in open(thefilepath):
for word in line.split():
dosometingwith(word)
6. 处理zip数据
6.1 从zip文件中读取数据
任务检查一个zip文档中所有子项,并打印子项名称,以及大小;
#!/usr/bin/env python
#encoding:utf-8
import zipfile
#以’r‘打开zip文件,
z = zipfile.ZipFile("text.txt.zip","r")
#从zip文件列表中读取子项名并读取出来计算其字节数
for filename in z.namelist():
print 'File:',filename byte = z.read(filename) print 'has',len(byte),'byte'
 

python--文件处理1的更多相关文章

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

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

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

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

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

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

  4. Python 文件操作函数

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

  5. python文件I/O(转)

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

  6. python 文件操作总结

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

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

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

  8. python文件和元组

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

  9. Python文件基础

    ===========Python文件基础========= 写,先写在了IO buffer了,所以要及时保存 关闭.关闭会自动保存. file.close() 读取全部文件内容用read,读取一行用 ...

  10. python文件打包格式,pip包管理

    1..whl是python文件的一种打包格式, 在有些情况下,可以将文件的后缀名改为.zip并解压 2.cmd中,提示pip版本太低,先升级pip   pip install --upgrade pi ...

随机推荐

  1. UVA - 11054 Wine trading in Gergovia 扫描法

    题目:点击打开题目链接 思路:考虑第一个村庄,如果第一个村庄需要买酒,那么a1>0,那么一定有劳动力从第二个村庄向第一个村庄搬酒,这些酒可能是第二个村庄生产的,也可能是从其他村庄搬过来的,但这一 ...

  2. 实践自己的WebSite______流水

    尝试从头至尾搭建一个MVC的网站,主要以流水的方式进行进度和记录,而不讨论技术的部分. 1,在Controller下创建两个文件夹,分别为sys和Business,分别对应于系统功能和业务逻辑.比如登 ...

  3. hdu2604 递推转换矩阵快速幂

    刚开始还以为用位运算与或几下几个循环就搞定了,算着算着发现不行........ 还是一种固定的切题角度,我假设有长度为n,总的排列数位f(n),怎么算他呢?从后往前考虑,因为大多数情况,都是用前面的结 ...

  4. 谋哥:搞APP,做得累的都不对!

    最近谋哥(微信viyi88)我刚加入“秦王会”,思想收到猛烈地冲击,各位大佬的思维有时候会让我大脑短路,收获不少.同时,我也慢慢发现我一直平静的 心开始浮躁,我发现苗头不对,于是开始静下心来.静下心, ...

  5. python + selenium - selenium常用元素定位

    1. Chrome定位工具 打开Chrome浏览器,按F12会弹出开发者工具选项,选择Elements: 1)鼠标点击最左边箭头 2)鼠标滑动到页面中你要操作的元素,单击一下 3)对应的html元素内 ...

  6. MongoDB 3.6 安装详解

    在ubuntu和多数linux发行版的包安装源中MongoDB默认的版本是2.4,但2.4所使用的存储引擎不支持collecitons级别的锁,只支持database级别的,所以在开发中2.4版本的m ...

  7. Maven之scope详解

    scope的分类 compile(编译范围) 默认就是compile,什么都不配置也就是意味着compile.compile表示被依赖项目需要参与当前项目的编译,当然后续的测试, 运行周期也参与其中, ...

  8. (英文排版测试)Lorem Ipsum

    Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis tincidunt consequat pretiu ...

  9. 正则表达式与python中re模块

    一个网站,正则表达式入门的,很好 http://www.jb51.net/tools/zhengze.html 下面这个包含对python中re的介绍,也是很不错的http://www.w3cscho ...

  10. 用-webkit-box-reflect制作倒影

    1.只在webkit内核的浏览器上有效果 2.语法: -webkit-box-reflect: <direction> <offset> <mask-box-image& ...