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. JDK1.8 HashMap$TreeNode.rotateLeft 红黑树左旋

    红黑树介绍 1.节点是红色或黑色. 2.根节点是黑色. 3.每个叶子节点都是黑色的空节点(NIL节点). 4 每个红色节点的两个子节点都是黑色.(从每个叶子到根的所有路径上不能有两个连续的红色节点) ...

  2. hql的笔记

    删除方法 getSession().delete(arg0); 今天写这个删除语句的时候运用这delete()这个方法,根据id删除记录,hql和普通的sql还是有区别的, 普通的sql封装好了del ...

  3. 24、AES RSA加密处理记录

    一.加密过程解释 前提:发送方为A,接受方为B牢记:RSA为非对称加密,AES为对称加密.对称加密,属于传统的加密技术,加密和解密的秘钥都是相同的,AES的秘钥长度有128.192.256三种.非对称 ...

  4. [POJ 1003] Hangover C++解题

        Hangover Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 95164   Accepted: 46128 De ...

  5. 通用的前端js代码

    1.判断是否移动设备的浏览器,是否允许触摸事件.(响应式网页) if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i. ...

  6. python学习-- 默认urls中 Path converter

    默认Path converter Django2.0自带的PathConveter包括: str:匹配除了路径分隔符(/)之外的非空字符串,如果没有转换器,默认使用str作为转换器. int:匹配0及 ...

  7. JDBC 学习笔记(四)—— JDBC 加载数据库驱动,获取数据库连接

    1. 加载数据库驱动 通常来说,JDBC 使用 Class 类的 forName() 静态方法来加载驱动,需要输入数据库驱动代表的字符串. 例如: 加载 MySQL 驱动: Class.forName ...

  8. iOS UICollectionView高级用法(长按自由移动cell)

    iOS 9之后: 示例如下 效果 前言: 看完你可以学到哪些呢? 就是文章标题那么多, 只有那么多. . 手残效果图没弄好. @property (nonatomic, strong) UIColle ...

  9. CSS编码规范(转)

    1 前言 CSS作为网页样式的描述语言,在百度一直有着广泛的应用.本文档的目标是使CSS代码风格保持一致,容易被理解和被维护. 虽然本文档是针对CSS设计的,但是在使用各种CSS的预编译器(如less ...

  10. HDU——4291A Short problem(矩阵快速幂+循环节)

    A Short problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...