您的位置:首页 > 编程语言 > Python开发

Python Cookbook (2) 文件

2013-03-30 18:17 381 查看
1. Python对文件的支持
1) 内建的open函数等
2) os
3) 第三方工具
有些语言的特点就是很容易支持第三方

2. Python中的大多数文件接口都是跨平台的。这种设计的重要性怎么赞美也不为过。

3. Python的文件处理接口往往并不局限在只用于真实的物理文件,只要目标对象实现了期望的协议,一切工作都可以平滑自然地进行。

4. 大文件的时候怎么处理?

5. open 的读取模式
r 以文本读取,默认,不用指定
rb 以二进制读取
w 以文本模式写
wb 以二进制写
rU 同r,但是考虑了不用平台的\n,用这个就对了

Example:

def test_file():
filename = "./main.py"
infile = open(filename, 'rU');
try:
#for line in infile:
lines = len(infile.readlines())
print "{0}(line={1})".format(filename, lines);
finally:
infile.close()
infile.close()

outfilename = "./testfile.txt"
outfile = open(outfilename, 'w')
outfile.write("This is a test file");
outfile.close()


tar 工具

#!/usr/local/bin/python

import os
import tarfile
import sys

def make_tar(folder_to_backup, dest_folder='.', compression='gz'):
if compression:
dest_ext='.'+compression
else:
dest_ext=''
arcname = os.path.basename(folder_to_backup)
dest_name = '{0}.tar{1}'.format(arcname, dest_ext)
dest_path = os.path.join(dest_folder, dest_name)
if compression:
dest_cmp = ':' + compression
else:
dest_cmp = ''

out = tarfile.TarFile.open(dest_path, 'w'+dest_cmp)
out.add(folder_to_backup, arcname)
out.close()
return dest_path

def main():
argc = len(sys.argv)
folder_to_backup = ''
dest_folder = ''
compression = ''

if argc == 2:
folder_to_backup = sys.argv[1]
make_tar(folder_to_backup)

elif argc == 3:
folder_to_backup = sys.argv[1]
dest_folder = sys.argv[2]
make_tar(folder_to_backup, dest_folder)

elif argc == 4:
folder_to_backup = sys.argv[1]
dest_folder = sys.argv[2]
compression = sys.argv[3]
make_tar(folder_to_backup, dest_folder, compression)
else:
print "Args wrong, ./mytar folder_to_backup [dest_folder [compression]]"
return

return

main()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: