Python 如何计算文本文件中的两行,并断言它们彼此相等?

Python 如何计算文本文件中的两行,并断言它们彼此相等?,python,jupyter-notebook,Python,Jupyter Notebook,给定一个包含大量playstation 4评论的文本文件,我的任务是通过将它们保存到自己的列表中,提取出包含“评级:”和“评论:”的行。我需要能够使用 assert len(ratings) == len(reviews) 命令以确定是否正确执行了该操作。结果应该是两者的长度。我可以数一数整个文本文件的行数,但我完全不知道如何按要求把它切碎。我对编程本身完全是个业余爱好者。这就是我目前所拥有的 ratings=[] reviews=[] def line_count(fname):

给定一个包含大量playstation 4评论的文本文件,我的任务是通过将它们保存到自己的列表中,提取出包含“评级:”和“评论:”的行。我需要能够使用

 assert len(ratings) == len(reviews)
命令以确定是否正确执行了该操作。结果应该是两者的长度。我可以数一数整个文本文件的行数,但我完全不知道如何按要求把它切碎。我对编程本身完全是个业余爱好者。这就是我目前所拥有的

ratings=[] 
reviews=[]
def line_count(fname):
    with open("PlayStation-4-Console_reviews.txt") as text_file:
        for i, line in enumerate(text_file):
            pass
    return i+1
print(line_count("PlayStation-4-Console_reviews.txt"))
预期结果是

38096

您可以使用in关键字检查一个字符串是否是另一个字符串的子字符串:

if 'review' in line:
    reviews.append(line)
elif 'ratings' in line:
    ratings.append(line)

根据科里的回答,你可以这样做:

ratings = []
reviews = []


def line_count(filename="PlayStation-4-Console_reviews.txt"):
    with open(filename) as f:
        for line in f.read().splitlines():
            if 'review' in line: reviews.append(line)
            elif 'rating' in line: reviews.append(line)


assert len(ratings) == len(reviews)

您可以添加一个输入和输出示例吗?只有一个问题—PEP 8(Python的样式指南)说,您不应该格式化这样的if语句,因为它会降低可读性。我更喜欢大多数时候编写这样的if语句。我喜欢这样读代码,而不是额外的缩进。如果其他人正在阅读代码,他们总是可以使用pycharm(我使用的IDE)自动格式化代码。你的大多数同事都不会喜欢:)我不使用IDE,所以我无法做到这一点-你不应该期望与你一起工作的任何人使用特定的IDE。真的,目前我在上高中,我只自己工作过。我的意思不是说pycharm,而是一个可以自动格式化的IDE。这不是一件值得依赖的事情——很多业内人士(包括我自己)都使用VIM。这是一个非常强大的文本编辑器,但它需要额外的插件来添加自动格式化之类的内容。它也不是GitHub所做的事情,例如,在GitHub中,很多代码都被其他人读取。