python读取txt文件每一行

想将txt文件导入Python,文件内容是8道选择题,想要读取每一行,并让选择题逐道出现在我要做的小游戏中,玩家进行选择,并给每个选项赋分,最后游戏结束给出一个分数,不知道代码该怎么写

这要看你的内容是什么样的了,包括不包括正确答案之类的

f = open('文件名','r')
lines = f.read().split('\n')
f.close()

根据你的内容,直接处理 lines 即可

读写文件属于比较基础的项目了
问题不在于如何读写
你文件中的数据是如何组织的,怎么判断一道题哪里是题干,哪里是选项,哪里是答案
这些是需要设计的
你需要多少了解一些数据的相关知识,还有字符串处理的方法
按你问问题的方式,推测你各个相关知识都不甚了了,建议还是先不要着急
把问题分解,一个一个的解决
比如到底如何读文件,是一行一行读还是先全部读出来,读出来之后放在什么结构里
总是不肯对具体问题下功夫,老想求个一步到位的解决方案,那是成不了事的

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/760399
  • 你也可以参考下这篇文章:使用python读取txt文件里的指定内容,通过字典方式存储,并按字典中值的方式进行排序
  • 除此之外, 这篇博客: 使用Python读取数据集的图片路径,划分训练集与验证集并保存到txt文件中中的 4. 随机静态划分训练集、验证集与测试集,并保存到txt文件中 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • def write_train_val_test_list(img_list, train_rate, val_rate,
                                  train_save_path, val_save_path, test_save_path):
        '''
        随机划分训练集与验证集,并将训练集和验证集的图片路径和对应的标签存入txt文件中
        本方法因使用random.seed(0)语句,所以本方法是静态划分数据集,若想实现动态划分,可注释掉random.seed(0)语句
    
        :param img_list:            保存图像路径的列表
        :param train_rate:          训练集数量的比率
        :param train_save_path:     训练图像保存路径
        :param val_save_path:       验证集图像保存路径
        :return:
        '''
        train_index = len(img_list) * train_rate    # 以train_index为界限,img_list[0, train_index)为训练集
        val_index = len(img_list) * (train_rate + val_rate)     # 索引在[train_index, val_index)之间的为验证集,其余的为测试集
    
        # 列表随机打乱顺序,放入种子数,保证随机固定,使结果可复现
        random.seed(0)
        random.shuffle(img_list)
    
        # 划分训练集和验证集,并写入txt文件
        # 判断txt文件是否已经存在,若存在则不执行写入操作,需手动删除
        if os.path.exists(train_save_path):
            print(f'{train_save_path} already exists! Please delete it first.')
        if os.path.exists(val_save_path):
            print(f'{val_save_path} already exists! Please delete it first.')
        if os.path.exists(test_save_path):
            print(f'{test_save_path} already exists! Please delete it first.')
    
        if not os.path.exists(train_save_path) and not os.path.exists(val_save_path) and not os.path.exists(test_save_path):
            print('Splitting datasets...')
            for i in range(len(img_list)):
                # 写入训练集
                if i < train_index:
                    with open(os.path.join(train_save_path), "a+", encoding="utf-8", errors="ignore") as f:
                        if i < train_index - 1:
                            f.write(img_list[i] + '\n')
                        else:
                            f.write(img_list[i])
                # 写入验证集
                elif i >= train_index and i < val_index:
                    with open(os.path.join(val_save_path), 'a+', encoding='utf-8', errors='ignore') as f:
                        if i < val_index - 1:
                            f.write(img_list[i] + '\n')
                        else:
                            f.write(img_list[i])
                # 写入测试集
                else:
                    with open(os.path.join(test_save_path), 'a+', encoding='utf-8', errors='ignore') as f:
                        if i < len(img_list) - 1:
                            f.write(img_list[i] + '\n')
                        else:
                            f.write(img_list[i])
    
            print(f'Train datasets was saved: {train_save_path}')
            print(f'Val datasets was saved: {val_save_path}')
            print(f'Test datasets was saved: {test_save_path}')
            print('Splitting datasets Finished!')
  • 您还可以看一下 裴帅帅老师的Python入门编程100例课程中的 Python实现批量Txt文件的合并小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案如下:

    1. 首先,我们需要读取txt文件的内容。可以使用Python的open函数来打开文件,并使用readlines函数逐行读取文件内容。以下是读取txt文件内容的代码示例:
    def read_txt_file(file_path):
        with open(file_path, 'r') as f:
            lines = f.readlines()
            return lines
    
    1. 接下来,我们需要将选择题逐道呈现在一个小游戏中。可以使用Python的input函数来接收玩家的选项输入,并给出每个选项的得分。以下是呈现选择题的代码示例:
    def present_questions(questions):
        total_score = 0
        for question in questions:
            print(question)
            answer = input("请输入选项的编号:")
            if answer == 'A':
                score = 10
            elif answer == 'B':
                score = 20
            elif answer == 'C':
                score = 30
            elif answer == 'D':
                score = 40
            else:
                score = 0
            total_score += score
        print(f"总分为:{total_score} 分")
    
    1. 最后,我们需要调用上述函数来实现整个小游戏的逻辑。以下是完整的代码示例:
    def read_txt_file(file_path):
        with open(file_path, 'r') as f:
            lines = f.readlines()
            return lines
    
    def present_questions(questions):
        total_score = 0
        for question in questions:
            print(question)
            answer = input("请输入选项的编号:")
            if answer == 'A':
                score = 10
            elif answer == 'B':
                score = 20
            elif answer == 'C':
                score = 30
            elif answer == 'D':
                score = 40
            else:
                score = 0
            total_score += score
        print(f"总分为:{total_score} 分")
    
    # 读取txt文件内容
    file_path = "questions.txt"
    questions = read_txt_file(file_path)
    
    # 呈现选择题
    present_questions(questions)
    

    请确保将问题文件命名为 questions.txt 并放置在与Python脚本同一目录下。运行上面的代码,它将逐个呈现选择题,并要求玩家输入选项的编号。根据输入的选项,将给出相应的得分。最后,将计算出的总分打印出来。