Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我如何做一个while循环,让它在决定要做什么之前,读取.txt文件中的每一行?_Python_Variable Assignment - Fatal编程技术网

Python 我如何做一个while循环,让它在决定要做什么之前,读取.txt文件中的每一行?

Python 我如何做一个while循环,让它在决定要做什么之前,读取.txt文件中的每一行?,python,variable-assignment,Python,Variable Assignment,我正在创建一个名为addingcustomer(n)的函数: 因此,我需要它通读.txt中的每一行,以确保没有重复的客户名称,只需添加新的客户名称: my customer.txt: [1. "Yuvin Ng”, “Columbia College”, 778] [2, “Ali”, “Douiglas College”, 77238] 我目前的职能: def addingcustomer(file_name,new_name): f=open(file_name,"r+")

我正在创建一个名为addingcustomer(n)的函数: 因此,我需要它通读.txt中的每一行,以确保没有重复的客户名称,只需添加新的客户名称: my 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循环,使其作为列表添加到当前的.txt文件中。
很抱歉,我已经尽力了,我被卡住了。

首先,你不需要这两条
语句。此外,您还需要在返回之前关闭该文件。大概是这样的:

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\u name
的格式是什么?

我为您修复了缩进——只需在代码中的每一行之前添加四个空格,它就可以很好地格式化。呃,我想@zeekay在我之前修复了它。:)您正在使用不同类型的引号。坚持标准的。不要这样做:“Yuvin Ng”谢谢大家。问题解决了。=)类型错误:只能将列表(而不是“str”)连接到列表#尝试添加不存在的客户。我以为我已将新名称更改为列表,以便它可以连接。回溯(最近一次调用):文件“C:\Users\Yuvin\Desktop\customer assignment 1\customer assignment 2,第77行,在函数(c)文件“c:\Users\yuving\Desktop\Customer assignment 1\Customer assignment 2”第26行,在函数打印(addingcustomer(“customerlist.txt”,x))文件“c:\Users\yuving\Desktop\Customer assignment 1\Customer assignment 2”第64行,在addingcustomer f.write(列表(新名称)+“\n”)TypeError:只能将list(而不是“str”)连接到listok我将处理您刚才给我的脚本。谢谢。我没有想到
“\n”
——你为什么需要它?我已经编辑了答案的第二部分。我之所以有“\n”,是因为当我在当前customer.txt文件中添加新客户名称时,它将有(例如[1.“Yuvin Ng”,“Columbia College”,778][2,“Ali”,“Douiglas College”,77238][3,“新客户名称”,“UBC”,4930201133]