Chinaunix首页 | 论坛 | 博客
  • 博客访问: 971197
  • 博文数量: 109
  • 博客积分: 1751
  • 博客等级: 上尉
  • 技术积分: 1817
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-31 22:37
文章分类

全部博文(109)

文章存档

2014年(9)

2013年(21)

2012年(48)

2011年(31)

分类: Python/Ruby

2012-02-03 16:48:55

python的基本文件操作是包含在__buildin__模块中的。

I, 基本操作
1, 打开
  1. fh=open('filename', 'r')
fh是打开文件的handle,每一个被打开的文件都应该退出时关闭(除了handle没有赋给变量的文件,如open('filename')。
参数:
r    只读
rU  忽略不同的换行符格式的只读打开
rb   以二进制格式只读打开
w  写
wb  以二进制写打开

2,读写
  1. # 读取全部内容
  2. text=fh.read()
  3. # 读取100个字节
  4. text=fh.read(100)
  5. # 按行读取
  6. text=fh.readlines()
  7. # seek
  8. fh.seek(100)
  9. # 写
  10. fh.write(text)

3,关闭
  1. fh.close()
因为python支持错误处理,所以一般对文件的操作写成下面的形式:
  1. fh=open('filename')
  2. try:
  3.     for line in fh:
  4.         precess line
  5. finally:
  6.     fh.close()

4, 对文件中的每一行进行处理
  1. # case 1
  2. fh=open('filename')
  3. for line in fh:
  4.     print(line)
  5. fh.close()

  6. # case 2
  7. fh=open('filename')
  8. lines=fh.readline()
  9. for line in lines:
  10.     print(line)
  11. fh.close()
更进一步,对每一行的每一个word进行处理
  1. fh=open('filename')
  2. lines=fh.readline()
  3. for line in lines:
  4.     for word in line:
  5.         print(line)
  6. fh.close()
5, 替换文件中的某个字符
  1. fin = open('filein', r)
  2. fout = open('fileout', w)
  3. for s in fin:
  4.     fout.write(s.replace('oldstring', 'newstring')
  5. fout.close()
  6. fin.close()
II, os.path介绍
操作文件,免不了要对路径,目录名,文件名进行处理。python提供了path的模块,帮助处理这类事务。可以在python中使用help(os.path)查看详细帮助。
1, 目录遍历
os.walk()
os.walk()函数返回一个三元组,依次为父目录名,目录名,文件名,他们之间以逗号分割。假设当前目录的目录结构如下:
  1. .
  2. ├── fstab
  3. ├── mybackup.py
  4. └── sampledir
  5. ├── 1
  6. ├── 2
  7. └── 3
则os.walk('.')返回如下:
  1. ('.', ['sampledir'], ['fstab', 'mybackup.py'])
  2. ('./sampledir', ['1', '2', '3'], [])
  3. ('./sampledir/1', [], [])
  4. ('./sampledir/2', [], [])
  5. ('./sampledir/3', [], [])
2,路径,目录名,文件名处理
  1. # 将路径名以最后一个/分割,返回一个二元组,如/etc/fstab被划分为/etc/, fstab
  2. os.path.split(path)
  3. # 将路径名划分为盘符和其他,如'C:/windows'被划分为C和windows
  4. os.path.splitdrive(path)
  5. # 将路径名划分为扩展名和其他,如d:/sample.txt被划分为d:/sample和txt。
  6. os.path.spltext(path)
  7. # 将两个路径连接,如'sdir''sfile'连接成'sdir/sfile'
  8. os.path.join(path1,path2)
  9. # 返回绝对路径
  10. os.path.abspath(path)
  11. # 返回目录名
  12. os.path.dirname(path)
  13. # 返回文件名
  14. os.path.basename(path)
  15. # 返回真实路径,即通过link找到真实的文件路径
  16. os.path.realpath(path)
III, zipfile介绍
python提供了直接对zip文件的读写。
  1. import zipfile
  2. z = zipfile.ZipFile("zipfile.zip", "r")
  3. for filename in z.namelist( ):
  4. print 'File:', filename,
  5. bytes = z.read(filename)
  6. print 'has', len(bytes), 'bytes'
详细信息请help(zipfile)

IV, shutil介绍
shutil是用于复制及打包文件/目录的模块。
  1. copyfile(src,dst)
  2. copytree(src, dst, symlinks=False, ignore=None)
  3. move(src,dst)
  4. make_archive()

V,  stat介绍
  1. import os
  2. import stat
  3. filestat = os.stat('text.txt')




阅读(2971) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~