Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 文本文件字符串解析_Python_Regex_File - Fatal编程技术网

Python 文本文件字符串解析

Python 文本文件字符串解析,python,regex,file,Python,Regex,File,我是python新手,不知道自己做错了什么。我的老师建议我跟踪每一行,不要分割地址。我已经尝试了很多方法,但不确定从这里走到哪里。我应该试试reg ex吗?如果是,怎么做?我从来没有这样做过——我是Python新手 这是我的任务:使用文本编辑器或IDE,创建一个包含名称和地址的文本文件,用于基于以下格式的测试: Firstname Lastname 123 Any Street City, State/Province/Region PostalCode 在地址之间包含一个空行,并在文件中至少

我是python新手,不知道自己做错了什么。我的老师建议我跟踪每一行,不要分割地址。我已经尝试了很多方法,但不确定从这里走到哪里。我应该试试reg ex吗?如果是,怎么做?我从来没有这样做过——我是Python新手

这是我的任务:使用文本编辑器或IDE,创建一个包含名称和地址的文本文件,用于基于以下格式的测试:

Firstname Lastname
123 Any Street
City, State/Province/Region PostalCode
在地址之间包含一个空行,并在文件中至少包含三个地址。创建一个程序,验证该文件是否存在,然后处理该文件,并将每个地址显示为一行逗号分隔的值,格式如下:

Lastname, Firstname, Address, City, State/Province/Region, PostalCode
这是我的代码:

def get_list(filename):
    addresses = []

    with open("file.txt", "r") as file:
        for line in file:
            line = line.ljust(len(line[1:])) 
            line = line.split("\n")
            if line[0] == "Address Book:":
                continue 
            else:

                addresses.append(line[0])

        print(" ".join(addresses))
        #print(addresses)
        return addresses
这是一个示例TXT文件

AddressBook.txt

无名氏 阳光路1234号。 纽约州纽约市,10001

嘿,裘德 艾比路7608号。 纽约州纽约市,10001

无名氏 3583便士。
纽约州纽约市,10002

我不能完全确定我是否理解您的意图。很抱歉,我将此作为一个答案发布,而不是对该问题发表评论(我没有评论该问题的声誉)。所以你有一个文本文件,里面有很多行,有名字和地址?你想把那个文件分成名字和地址吗?如果是,您是否需要与此人姓名链接的地址?请澄清这一点,我将非常乐意为您提供帮助

这个用例不需要使用正则表达式。如果每行的值由特定字符(如空格或逗号)分隔,则可以执行
.split()
并使用列表位置将值存储在特定变量中。请放一个示例文本文件来帮助复制您的问题。是的,很抱歉,我对Python和一般编程都是新手。感谢您的帮助。我还编辑了这个问题,以包括我们的讲师希望最终视图的外观。您好,谢谢您重新编写您的问题,现在已经清楚多了!那么现在代码的当前输出是什么?现在我把每个值(fname,lname),地址,然后是城市,州,邮政编码分开。我现在将它们放入数组中,显示一个列表中的所有名称、另一个列表中的地址以及城市、州和邮政编码。现在我只需要计算并行阵列的输出。很抱歉,这让人困惑。既然你是这样做的,姓名和收件人之间没有联系(我的意思是你不知道谁的地址属于谁)。但是,如果这样做,可以在它们之间链接的一种方法是,如果名称、姓氏和地址都在数组的同一索引中,则将它们连接起来(只需运行for循环)。如果你需要帮助,请告诉我。但是,解决您的问题更合理的方法是,当您处理每个名称+地址时,将它们直接保存到新的完成数组中,然后将该数组保存到文本文件中。我希望这是有意义的,如果不清楚,请告诉我