Chinaunix首页 | 论坛 | 博客
  • 博客访问: 159781
  • 博文数量: 27
  • 博客积分: 97
  • 博客等级: 民兵
  • 技术积分: 314
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-19 19:34
个人简介

非攻飞攻,夜尽天明!

文章分类

全部博文(27)

文章存档

2014年(6)

2013年(21)

我的朋友

分类: LINUX

2013-09-27 21:44:44

        Python 将文本文件的内容读入可以操作的字符串变量非常容易。
        文件对象提供了三个“读”方法: .read()、.readline() 和 .readlines()。每种方法可以接受一个变量以限制每次读取的数据量,但它们通常不使用变量。
        .read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。
        
readlines()自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for... in ... 结构进行处理。另一方面,.readline()每次只读取一行,通常比 .readlines()慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用.readline()。   

在python readline()读入一行时,如果该行是不需要的行,可以再次line=file1.readline()跳过该行。

#vim    read_file.py

import sys

def  skip_header(r):
               # '''跳过 文件 r 的头,'''
                line = r.readline()
                line = r.readline()
                while line.startswith( ' # ' )                        #两次使用line = r.readline(),如果 以 '#' 开头,则跳过这行
                                line = r.readline()
                 return line

def process_file(r):
                  #读取文件除 以 ‘#’ 注释的文件内容
                   line = skip_header(r).strip()
                    print line

                    for line in r:
                            line = line.strip()
                            print line

if __name__ == "__main__":
                    input_file = open(sys.argv[1], 'r')
                    process_file(input_file)
                    input_file.close()



使用:
#python read_file.py  /home/read.txt               #读取 /home/read.txt 的内容

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