python读文件逐行处理的示例代码分享

yipeiwu_com6年前Python基础

复制代码 代码如下:

import os ## for os.path.isfile()

def dealline(line) :
    print(line) ## 针对line我可以做很多事情

def getfilename() :
    return input('Please input file name(input exit() for exit):').strip()

class more : ## MORE功能
    linenum = 0
    size = 10
    def work(self) :
        if self.linenum >= self.size :
            if input('--MORE--').strip().lower() == 'exit()' :
                return False
            self.linenum = 0
        else :
            self.linenum += 1
        return True

while True :
    try :
        filename = getfilename()

        if filename.lower() == 'exit()' : ## 退出
            break

        if os.path.isfile(filename) : ## 判断文件是否存在

            f = open(filename)
            try :
                lines = f.readlines()

                m = more()
                for line in lines:
                    if False == m.work() :
                        break
                    dealline(line)

                ## input()
            finally :
                f.close()

        else :
            print('File does not exists.')
            ##input()
    except :
        print('Input Error!')



还可以用

复制代码 代码如下:

with open(filename) as fh:
    for line in fh:
        yield line


输出每一行

相关文章

Empty test suite.(PyCharm程序运行错误的解决方法)

Empty test suite.(PyCharm程序运行错误的解决方法)

运行程序test4_4.py时报错,Empty test suite. 查找资料发现原因: 默认情况下,PyCharm将检查以test开头的文件,它们是unittest.TestCas...

Windows下pycharm创建Django 项目(虚拟环境)过程解析

Windows下pycharm创建Django 项目(虚拟环境)过程解析

1. 背景 我在 Windows 下的 pycharm 直接创建 全新 Django 项目 会 pip 和其他报错 ,暂时解决不了,另外后续的多个项目只需要一套python 环境, 所以...

Python 获得13位unix时间戳的方法

在python 开发web程序时,需要调用第三方的相关接口,在调用时,需要对请求进行签名。需要用到unix时间戳。 在python里,在网上介绍的很多方法,得到的时间戳是10位。而ja...

CentOS 7下安装Python 3.5并与Python2.7兼容并存详解

CentOS 7下安装Python 3.5并与Python2.7兼容并存详解

本文主要给大家介绍了关于在CentOS 7下安装Python 3.5并与Python2.7兼容并存的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: CentOS 7下安装P...

对numpy 数组和矩阵的乘法的进一步理解

对numpy 数组和矩阵的乘法的进一步理解

1、当为array的时候,默认d*f就是对应元素的乘积,multiply也是对应元素的乘积,dot(d,f)会转化为矩阵的乘积, dot点乘意味着相加,而multiply只是对应元素相乘...