You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python处理电视节目列表代码运行无输出问题求助

代码错误排查
  • main函数未调用read_file()方法读取文件生成字典,直接使用未定义的dict1变量,程序直接报错终止,自然没有输出
  • read_file()方法中存在变量名错误:if file[i].strip() == '' 中的file是循环的数值索引,不是读取的文件内容列表,且i未定义,应该修改为if file1[file].strip() == ''
  • output_titles()方法中打开文件时使用了未定义的变量file,应该使用参数传入的文件名变量
  • 调用output_keys和output_titles时参数传反:两个函数定义的第一个参数是输出文件名,第二个是存储数据的字典,原代码调用时把字典放在了第一个参数位置
  • output_keys()方法写文件时没有添加换行符,会导致所有输出内容挤在同一行,不符合格式要求
  • main()方法中的if dict1 is None判断逻辑无效,应该在调用read_file()读取文件后再判断是否读取成功,建议添加异常捕获处理文件名无效的场景
修正后完整代码
def read_file(input_file):
    dict1 = {}
    try:
        with open(input_file, 'r', encoding='utf-8') as f:
            content = f.readlines()
            for idx in range(0, len(content)-1, 2):
                if content[idx].strip() == '':
                    continue
                count = int(content[idx].strip())
                show = content[idx + 1].strip()
                if count in dict1:
                    dict1[count].append(show)
                else:
                    dict1[count] = [show]
        return dict1
    except:
        return None
    
def output_keys(output_file, dict1):
    with open(output_file, 'w+', encoding='utf-8') as q:
        for key in sorted(dict1.keys()):
            line = "{}: {}\n".format(key, '; '.join(dict1[key]))
            q.write(line)
            print(line.strip())

def output_titles(output_file, dict1):
    titles = []
    for show_list in dict1.values():
        titles.extend(show_list)
    with open(output_file, 'w+', encoding='utf-8') as o:
        for title in sorted(titles):
            o.write("{}\n".format(title))
            print(title)

def main(input_file):
    dict1 = read_file(input_file)
    if dict1 is None:
        print('Error: Invalid file name provided: {}'.format(input_file))
        return    
    output_filename1 = 'output_keys.txt'
    output_filename2 = 'output_titles.txt'
    output_keys(output_filename1, dict1)
    output_titles(output_filename2, dict1)

file_name = input()  
main(file_name)

内容的提问来源于stack exchange,提问作者Cali_2021

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:54:10