Python程序重复运行无响应的原因及解决方案
本文分析了Python程序运行一次后再次运行无响应的问题,并提供了相应的解决方案。问题根源在于程序逻辑错误,导致get_file函数未被正确调用,且函数内部存在逻辑错误。
程序中定义了get_file函数用于处理文件,但主程序中只调用了一次,且未正确传递参数。此外,函数内部的代码存在错误,导致程序无法正常处理文件。
代码错误分析及修正:
立即学习“Python免费学习笔记(深入)”;
函数调用错误: 原代码中get_file函数定义后没有被调用。 需要在print('OK')语句之前显式调用该函数,并传入正确的参数files。
函数参数错误: get_file函数的定义中参数为file,而实际调用时传入的是files(一个列表)。应将函数定义中的参数改为files。
文件处理逻辑错误: for ee in txts:循环中,res=res(lst1)这行代码是错误的,它试图将列表lst1赋值给res,但res是一个列表,不能直接用这种方式赋值。 此外,代码中存在多次重复读取文件内容以及对txts列表的修改,这些都可能导致逻辑错误。
文件写入错误: with open(e+'.csv','w') as f: 这行代码存在问题,因为e在循环中是每一行文本,而不是文件名。应该使用file作为文件名。
修改后的代码:
import os import re import csv aa_codes = {'ALA':'A','CYS':'C','ASP':'D','GLU':'E', 'PHE':'F','GLY':'G','HIS':'H','LYS':'K','ILE':'I', 'LEU':'L','MET':'M','ASN':'N', 'PRO':'P','GLN':'Q','ARG':'R', 'SER':'S','THR':'T','VAL':'V','TYR':'Y','TRP':'W'} def file_name(file_dir): return os.listdir(file_dir) file_dir='D:\python代码\new - 副本' files = file_name(file_dir) def get_file(files): for file in files: res = [] lst1 = [] try: with open(os.path.join(file_dir, file), 'r') as f: # 使用os.path.join确保路径正确 txts = f.readlines() # 去除连续重复的行 (改进后的逻辑) cleaned_txts = [] for i in range(len(txts)): if i > 0 and txts[i].strip() == txts[i-1].strip(): continue cleaned_txts.append(txts[i]) txts = cleaned_txts for line in txts: line = line.strip() # 去除行首尾空格 if line: # 忽略空行 parts = re.split(r's*,s*', line) # 使用更稳健的正则表达式分割 if len(parts) >= 6: # 检查是否有足够的数据 lst1.append([parts[3], parts[5]]) for item in lst1: if item[0] in aa_codes: res.append(aa_codes[item[0]]) with open(os.path.join(file_dir, file + '.csv'), 'w', newline='') as f: # 添加newline=''避免空行 writer = csv.writer(f) # 使用csv模块写入csv文件,更可靠 writer.writerow(res) except Exception as e: print(f"Error processing file {file}: {e}") get_file(files) print('OK')
修改后的代码更健壮,处理了潜在的错误,并使用了csv模块进行更可靠的文件写入。 确保file_dir路径正确。 如果仍然有问题,请检查文件内容格式是否与代码预期一致。
以上就是Python程序运行一次后再次运行无反应是什么原因?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号