Python双脚本问题:RGB值写入加done及读取终止异常求助
解决两个Python脚本的问题
一、生成RGB值脚本:添加'done'标识
原代码问题:写完所有RGB值后未写入done标识,且每次循环重复打开/关闭文件,IO效率极低。
修正代码
def generatergbvalues(): rgb_values = [] for r in range(256): for g in range(256): for b in range(256): rgb_values.append((r, g, b)) return rgb_values def run(): rgb_values = generatergbvalues() # 用with语句一次性管理文件,自动释放资源 with open('Python/Color/colors.txt', 'a+') as file: for value in rgb_values: file.write(f"{value}\n") print(value) # 所有RGB值写入完成后,追加done标识 file.write('done\n') if __name__ == "__main__": run()
二、读取RGB值脚本:检测到'done'后终止循环
原代码问题:
- 函数内用
done == True是比较操作,不是赋值,无法修改状态 done作为参数是值传递,函数内修改不会影响外部变量- 未正确关闭文件,存在资源泄漏
- 无延迟循环读取占用大量CPU资源
修正代码
import time def check_done(): with open('Python/Color/colors.txt', 'r') as file: data = file.read() # 直接按换行分割内容,无需替换成/ datalist = data.split('\n') print(datalist) return "done" in datalist while True: if check_done(): break # 每0.5秒读取一次,降低CPU占用 time.sleep(0.5)
内容的提问来源于stack exchange,提问作者1nonly
相关产品推荐
相关产品推荐

