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. ubuntu12.04安装teamviewer

    ubuntu 12.04 64位 下载地址:http://downloadap2.teamviewer.com/download/teamviewer_linux_x64.deb 下载之后,选中,右击 ...

  2. /dev/sda is apparently in use by the system; will not make a filesystem here!解决方法

    /dev/sda  is apparently in use by the system; will not make a filesystem here! 翻译:系统显然在使用,不会在这里做文件系统 ...

  3. Hadoop4.2HDFS测试报告之六

    测试结论 第一组数据作表格作图: 第二组数据作表格作图: 根据以上图分析得出以下结论: 1. 本地存储的读写速率基本保持23M左右,说明本地存储比较稳定. 2. HDFS存储两个数据节点的读写速率性能 ...

  4. 重新造轮子之静态链接1(Static linking)

    最近学习计算机病毒学的过程中,又讲到了静态链接的问题,联想到了之前保健哥在信息安全的课堂上向我们展示了一个没有main()函数的C程序到底应该如何编写.个人觉得这个小实验对于加深静态链接的过程的理解也 ...

  5. UVa 11695 树的直径 Flight Planning

    题意: 给出一棵树,删除一条边再添加一条边,求新树的最短的直径. 分析: 因为n比较小(n ≤ 2500),所以可以枚举删除的边,分裂成两棵树,然后有这么一个结论: 合并两棵树后得到的新树的最短直径为 ...

  6. Selenium WebDriver- 操作浏览器的cookie

    #encoding=utf-8 import unittest import time from selenium import webdriver from selenium.webdriver i ...

  7. Selenium WebDriver- 通过源码中的关键字找到我们要操作的句柄,用于多个窗口之间切换

    #encoding=utf-8 import unittest import time from selenium import webdriver from selenium.webdriver i ...

  8. day03_08 变量的重新赋值02

    python自动回收垃圾内存,不用了自动会回收,但是C不会 以下del代码为手动强拆,就是从内存中删除变量名

  9. SDOJ 3696 Tree

    描述 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有need条白色边的生成树. 题目保证有解. 输入 第一行V,E,need分别表示点数,边数和需要的白色边数. 接下来E行 每行 ...

  10. HTTP的一些概念

    1. 什么是回调? 回调是异步编程时的基础,将后续逻辑封装成起始函数的参数,逐层嵌套 2. 什么是同步/异步? 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指: ...