Как сделать цикл while, чтобы он прочитал каждую строку в файле .txt, прежде чем решить, что делать? - PullRequest
0 голосов
/ 10 июля 2011

Я создаю функцию под названием добавление клиента (n): поэтому мне нужно, чтобы она прочитала каждую строку в .txt, чтобы убедиться, что нет повторного имени клиента, только добавьте новое имя клиента: мой customer.txt:

[1. "Yuvin Ng”, “Columbia College”, 778]
[2, “Ali”, “Douiglas College”, 77238]

моя текущая функция:

def addingcustomer(file_name,new_name):
    f=open(file_name,"r+")
    for line in f:
        while new_name in line:
            return ("The Customer existed")
        while new_name not in line:
            f=open("file_name","w")
            f.write(list(new_name)+"\n")
            f.close()

как я могу создать цикл while, чтобы он функционировал как дополнение списка к файлу current.txt.мне так жаль, что я старался изо всех сил, и я застрял.

1 Ответ

2 голосов
/ 10 июля 2011

Прежде всего, вам не нужны два оператора while. Кроме того, вам нужно закрыть файл, прежде чем вернуться. Как то так:

def addingcustomer(file_name,new_name):
    f=open(file_name,"r+")
    for line in f:
        if new_name in line:
            f.close()
            return ("The Customer existed")
    # the name didn't exist
    f.write(str(list(new_name)+"\n")
    f.close()
    return ("Added new customer.")

Однако, если бы я делал это, я бы возвратил либо True, либо False, чтобы указать, что клиент был добавлен:

def addingcustomer(file_name,new_name):
    f=open(file_name,"r+")
    for line in f:
        if new_name in line:
            f.close()
            return False
    # the name didn't exist
    f.write(new_name)
    f.write("\n")
    f.close()
    return True

Еще вопрос: в каком формате new_name начинается?

...