1. Python对文件的支持
1) 内建的open函数等
2) os
3) 第三方工具
有些语言的特点就是很容易支持第三方
2. Python中的大多数文件接口都是跨平台的。这种设计的重要性怎么赞美也不为过。
3. Python的文件处理接口往往并不局限在只用于真实的物理文件,只要目标对象实现了期望的协议,一切工作都可以平滑自然地进行。
4. 大文件的时候怎么处理?
5. open 的读取模式
r 以文本读取,默认,不用指定
rb 以二进制读取
w 以文本模式写
wb 以二进制写
rU 同r,但是考虑了不用平台的\n,用这个就对了
Example:
1 def test_file(): 2 filename = "./main.py" 3 infile = open(filename, 'rU'); 4 try: 5 #for line in infile: 6 lines = len(infile.readlines()) 7 print "{0}(line={1})".format(filename, lines); 8 finally: 9 infile.close() 10 infile.close() 11 12 outfilename = "./testfile.txt" 13 outfile = open(outfilename, 'w') 14 outfile.write("This is a test file"); 15 outfile.close()
tar 工具
1 #!/usr/local/bin/python 2 3 import os 4 import tarfile 5 import sys 6 7 def make_tar(folder_to_backup, dest_folder='.', compression='gz'): 8 if compression: 9 dest_ext='.'+compression 10 else: 11 dest_ext='' 12 arcname = os.path.basename(folder_to_backup) 13 dest_name = '{0}.tar{1}'.format(arcname, dest_ext) 14 dest_path = os.path.join(dest_folder, dest_name) 15 if compression: 16 dest_cmp = ':' + compression 17 else: 18 dest_cmp = '' 19 20 out = tarfile.TarFile.open(dest_path, 'w'+dest_cmp) 21 out.add(folder_to_backup, arcname) 22 out.close() 23 return dest_path 24 25 def main(): 26 argc = len(sys.argv) 27 folder_to_backup = '' 28 dest_folder = '' 29 compression = '' 30 31 if argc == 2: 32 folder_to_backup = sys.argv[1] 33 make_tar(folder_to_backup) 34 35 elif argc == 3: 36 folder_to_backup = sys.argv[1] 37 dest_folder = sys.argv[2] 38 make_tar(folder_to_backup, dest_folder) 39 40 elif argc == 4: 41 folder_to_backup = sys.argv[1] 42 dest_folder = sys.argv[2] 43 compression = sys.argv[3] 44 make_tar(folder_to_backup, dest_folder, compression) 45 else: 46 print "Args wrong, ./mytar folder_to_backup [dest_folder [compression]]" 47 return 48 49 return 50 51 main()