Python:For循环读取文本文件没有正确执行所有文本文件记录

时间:2017-10-15 22:06:12

标签: python

我对以下代码有疑问。

我正在尝试将txt文件作为输入,其中包含如下数据

aaaaaaaaaa
bbbbbbbbbb
cccccccccc

并将其传递给searchForJob函数以在不同的文件中执行搜索但是我的for循环输入文件没有正确执行它没有占用所有三行输入文件。它只选择第二行(bbbbbbbb)或第三行(ccccccccc)。有人可以帮我解决这个问题。我是python语言的新手。

def searchForJob(job):
    with open('some location/Jls.txt',"U") as lines:
        for line in lines:
            if line.find(job)!=-1:
                print(job + ' : Found')
                break;

    return




jobNames = open('some location/JNames.txt')
try:
    for job in jobNames:
        print(job)
        searchForJob(job)
finally:
    jobNames.close()

1 个答案:

答案 0 :(得分:0)

阅读文件时,请使用compileInProcess()模式。

每一行都有一个尾随r,因此您需要\n。使用strip()功能,以便您可以看到尾随的空格。

使用Python语言功能,例如with statementin keyword

按照PEP 8样式指南。

repr(...)

j.txt

def search_for_job(job):
    with open('j.txt', 'r') as f:
        for line in f:
            if job in line:
                print(repr(job) + ' : Found in ' + repr(line))
                break


with open('n.txt', 'r') as job_names:
    for job in job_names:
        job = job.strip()
        print('Searching for job ' + repr(job))
        search_for_job(job)

n.txt

job 1, name 2...
job 2, name 1...
job 3, nothing

示例输出:

name 1
name 2
name 3