Python脚本读取vote.txt时总报错,最可能卡在哪儿?

你问“为啥运行不了”,结合图片中的代码,我来帮你**逐行分析可能出错的原因**,并给出**修正方案**。 --- ## 🔍 从图片中看到的代码(PY202-1.py): ```python f = open("vote.txt", 'r', encoding='utf-8') names = f.readlines() f.close() n = 0 for name in names: name=name.strip() num =name.split("-") if len(num)==2: n+=1 print("有效票{}张".format(n)) ``` ✅ **这段代码本身逻辑是正确的!** 它统计的是:**每一行被 `-` 分割后恰好有两个部分的行数** —— 这通常代表“名字-票数”格式的有效票。 --- ## ❗ 但你说“运行不了”,常见原因有以下几种: --- ### 原因 1:文件 `vote.txt` 不存在或路径错误 > 💥 最常见错误! 你的代码写的是: ```python f = open("vote.txt", 'r', encoding='utf-8') ``` 如果当前工作目录(即 Python 脚本运行的文件夹)下没有 `vote.txt` 文件,就会报错: ``` FileNotFoundError: [Errno 2] No such file or directory: 'vote.txt' ``` #### ✅ 解决方法: 1. 确认 `vote.txt` 文件和 `.py` 文件在**同一个文件夹**。 2. 或者使用绝对路径(不推荐考试用): ```python f = open(r"D:\xhktSoft\python\xhkt\考生文件夹\PY202-1\vote.txt", 'r', encoding='utf-8') ``` 3. 在 IDLE 中运行时,确保“当前目录”正确。你可以加一行打印当前路径调试: ```python import os print(os.getcwd()) # 查看当前工作目录 ``` --- ### 🚫 原因 2:编码问题(虽然你写了 utf-8) 如果 `vote.txt` 是用 GBK、ANSI 等编码保存的,而你用 `encoding='utf-8'` 打开,可能会报: ``` UnicodeDecodeError: 'utf-8' codec can't decode byte ... ``` #### ✅ 解决方法: 尝试去掉 `encoding` 参数(默认系统编码),或改成 `'gbk'`: ```python f = open("vote.txt", 'r') # 让 Python 自动识别编码 # 或 f = open("vote.txt", 'r', encoding='gbk') ``` --- ### 🚫 原因 3:缩进错误(Python 对缩进敏感!) 看你的截图,`if len(num)==2:` 和 `n+=1` 的缩进看起来是对的(4个空格),但如果实际输入时混用了 Tab 和空格,也可能导致 `IndentationError`。 #### ✅ 解决方法: 全选代码 → 在 IDLE 中选择 “Format” → “Untabify Region” 或手动统一为 4 空格缩进。 --- ### 🚫 原因 4:文件名大小写或扩展名隐藏 Windows 有时会隐藏 `.txt` 扩展名,你以为创建了 `vote.txt`,其实是 `vote.txt.txt`。 #### ✅ 解决方法: 在资源管理器中开启“显示文件扩展名”,确认文件名确实是 `vote.txt`。 --- ### 🚫 原因 5:权限问题(较少见) 如果你把文件放在 C 盘根目录或受保护文件夹,可能无法读取。 #### ✅ 解决方法: 把 `.py` 和 `.txt` 都放到桌面或 D 盘自定义文件夹再试。 --- ## ✅ 最佳实践建议(考试/作业场景): 1. **确保文件和脚本同目录** 2. **不要硬编码绝对路径** 3. **加上异常处理更健壮(可选)** 比如: ```python try: f = open("vote.txt", 'r', encoding='utf-8') names = f.readlines() f.close() except FileNotFoundError: print("错误:找不到 vote.txt 文件!请检查是否在同一目录下。") exit() n = 0 for name in names: name = name.strip() num = name.split("-") if len(num) == 2: n += 1 print("有效票{}张".format(n)) ``` --- ## 🧪 测试数据示例(vote.txt 内容): ``` 张三-5 李四-3 王五 赵六--2 孙七-10 ``` → 有效票是:张三、李四、孙七 → 共 3 张 (“王五”无“-”,“赵六--2”有两个“-”,都不算有效) --- ## ✅ 总结:最可能的原因是 > **“vote.txt 文件不在当前运行目录下”** 请先检查这个!然后按上面方法排查其他可能性。 --- 📌 **下一步行动建议:** 1. 打开 IDLE → 运行前,在菜单栏点 “File” → “Open” → 打开你的 `.py` 文件。 2. 确保 `vote.txt` 也在同一个文件夹。 3. 再次运行。 如果还是不行,请把**完整的错误信息(红色文字)复制粘贴给我**,我可以精准定位! 祝你顺利通关!💪

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

Python内容推荐

vote_python

vote_python

vote, an web application writed by python 2.7 was run on Django 1.9 and moreover it is a very simple instance

Python库 | vote4film-1.3.0-py3-none-any.whl

Python库 | vote4film-1.3.0-py3-none-any.whl

python库,解压后可用。 资源全名:vote4film-1.3.0-py3-none-any.whl

voting-script:一个可以轻松统计投票的 Python 脚本

voting-script:一个可以轻松统计投票的 Python 脚本

选举投票 手术: 运行脚本: python vote.py <number> 运行后,您可以访问以下命令: /begin 这将重置所有投票结构以进行新投票 /delete 这会删除最近添加的投票,这对搞砸了很有用 /score 这根据下面的分数方法计算候选人的排名 /tally 这将通过即时决选投票计算获胜者 要添加投票,只需输入表示投票排名的字符串。 如果有四个候选人(A、B、C、D)在竞选,一个人排名第一,C第二,D第三,则投票将输入为“ACD”。 这推断候选人对候选人 D 投了“不信任”票。 理货功能: 这将根据 Instant-Runoff Voting 计算选举的获胜者。 爱尔兰规则打破了要淘汰的候选人的平局。 评分函数: 这将计算候选者的排名。 它的运作方式如下: 首先,它淘汰所有获得少于多数选票的候选人(即,排名低于所有选民一半的候选人)。

社交网络影响力最大化(Python实现)及Wiki-Vote数据集

社交网络影响力最大化(Python实现)及Wiki-Vote数据集

1、内容概要:社交网络影响力最大化(Python实现)及Wiki-Vote数据集。(1)线性阈值模型(LT模型)代码实现(代码有详细注释);(2)LT模型改进算法-贪心算法代码实现(代码有详细注释); 2、源代码适用于学生或研究者等人,该研究方向的学生可以对源代码及相关论文进行学习实验。 3、影响力最大化的应用场景十分丰富,包括病毒营销,推荐系统,信息扩散,时间探测,专家发现,链接预测等。 4、主要文件有:BAcreate.py,linear_threshold.py,linear_threshold_clime.py,LT_improve.py,test_linear_threshold.py,test_linear_threshold_clime.py,Wiki-Vote.txt。

python_socketio_vote.zip

python_socketio_vote.zip

基于flask框架实现的一个简单的及时投票网站小例子,用到了flask的第三方插件:socketio、SQLAlchemy。参考学习。

自动Vote工具

自动Vote工具

Auto POst data to website!

投票系统 vote 很好用

投票系统 vote 很好用

投票系统 vote 很好用 投票系统 vote 很好用 投票系统 vote 很好用

Vote_v2.zip

Vote_v2.zip

从点击屏幕上的元素到触发元素的 click 事件,移动浏览器会有大约 300 毫秒的等待时间。为什么这么设计呢? 因为它想看看你是不是要进行双击(double tap)操作。

vote-frontend:演示很少

vote-frontend:演示很少

vote-frontend:演示很少

vote投票系统

vote投票系统

这是小型的投票系统,里面含有进度条,很适合初学者

vote 投票功能 纯html

vote 投票功能 纯html

附件,相关文章介绍,查看本人CSDN博客:div+css+jQuery简单实现投票功能..

vote2000Yuzi调查引擎.zip

vote2000Yuzi调查引擎.zip

vote2000Yuzi调查引擎.zip 希望对感兴趣的有所帮助

vote12345.rar

vote12345.rar

用django开发的一个简易投票系统(基于bootstrap),其中对每个投票者的ip地址进行了限定(每个ip只能投1次票)。可以通过后台管理查看投票信息

online-vote

online-vote

online-vote

PyPI 官网下载 | ranked-vote-0.0.1.tar.gz

PyPI 官网下载 | ranked-vote-0.0.1.tar.gz

资源来自pypi官网。 资源全名:ranked-vote-0.0.1.tar.gz

linlongdeng-antchain-vote-master.zip

linlongdeng-antchain-vote-master.zip

新大陆蚂蚁链投票合约demo

Show the vote-开源

Show the vote-开源

蜂鸣器和十字架模拟了才艺秀电视节目中的声音。 目前在php / mysql中原型化。 希望使用python实现为跨平台系统应用。

投票系统vote

投票系统vote

北大青鸟的项目,就是一个小小的投票系统做玩玩的。

school_vote:校园投票系统

school_vote:校园投票系统

school_vote:校园投票系统

wfh.vote

wfh.vote

wfh.vote Web服务的前端/后端源实时运行: : 先决条件 一个AWS账户(可选)在同一帐户的Route53中托管/托管DNS的域 AWS CLI 使用IAM用户(管理员权限)创建并在您的Shell中配置凭据: : 生成和存储的IAM Git凭据: : SAM CLI Python 3 Git(当然) 入门(定制) 记下以下问题的答案: 1. CodePipeline管道应使用什么名称? ( ***CodePipelineName*** ) 2.我应该为CodeRepo存储库使用什么名称? ( ***CodeRepoName*** ) 3.(可选)是否要对前端使用自定义域? ( ***CustomDomain*** ) 我可以在其中创建此DNS记录的Route53区域ID是什么? ( ***CustomDomainZoneId*** ) 4.(可选)是否要对

最新推荐最新推荐

recommend-type

PyPI 官网下载 | mlpack3-3.4.2-cp36-cp36m-manylinux1_x86_64.whl

资源来自pypi官网,解压后可用。 资源全名:mlpack3-3.4.2-cp36-cp36m-manylinux1_x86_64.whl
recommend-type

实现基于C++或者python基本库,初学学习之用.zip

人工智能-项目实践-机器学习
recommend-type

机器学习的一些基础算法,主要使用Python、Cpp、Matlab编写。.zip

matlab算法,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。
recommend-type

jenkins-conf:Jenkins的配置文件

mlpack Jenkins配置和测试支持 该存储库包含Jenkins( )使用的许多脚本,用于构建和测试mlpack。
recommend-type

学生成绩管理系统C++课程设计与实践

资源摘要信息:"学生成绩信息管理系统-C++(1).doc" 1. 系统需求分析与设计 在进行学生成绩信息管理系统开发前,首先需要进行系统需求分析,这是确定系统开发目标与范围的过程。需求分析应包括数据需求和功能需求两个方面。 - 数据需求分析: - 学生成绩信息:需要收集学生的姓名、学号、课程成绩等数据。 - 数据类型和长度:明确每个数据项的数据类型(如字符串、整型等)和长度,例如学号可能是字符串类型且长度为一定值。 - 描述:详细描述每个数据项的意义,以确保系统能够准确处理。 - 功能需求分析: - 列出功能列表:用户界面应提供清晰的操作指引,列出所有可用功能。 - 查询学生成绩:系统应能通过学号或姓名查询学生的成绩信息。 - 增加学生成绩信息:允许用户添加未保存的学生成绩信息。 - 删除学生成绩信息:能够通过学号或姓名删除已经保存的成绩信息。 - 修改学生成绩信息:通过学号或姓名修改已有的成绩记录。 - 退出程序:提供安全退出程序的选项,并确保所有修改都已保存。 2. 系统设计 系统设计阶段主要完成内存数据结构设计、数据文件设计、代码设计、输入输出设计、用户界面设计和处理过程设计。 - 内存数据结构设计: - 使用链表结构组织内存中的数据,便于动态增删查改操作。 - 数据文件设计: - 选择文本文件存储数据,便于查看和编辑。 - 代码设计: - 根据功能需求,编写相应的函数和模块。 - 输入输出设计: - 设计简洁明了的输入输出提示信息和操作流程。 - 用户界面设计: - 用户界面应为字符界面,方便在命令行环境下使用。 - 处理过程设计: - 设计数据处理流程,确保每个操作都有明确的处理逻辑。 3. 系统实现与测试 实现阶段需要根据设计阶段的成果编写程序代码,并进行系统测试。 - 程序编写: - 完成系统设计中所有功能的程序代码编写。 - 系统测试: - 设计测试用例,通过测试用例上机测试系统。 - 记录测试方法和测试结果,确保系统稳定可靠。 4. 设计报告撰写 最后,根据系统开发的各个阶段,撰写详细的设计报告。 - 系统描述:包括问题说明、数据需求和功能需求。 - 系统设计:详细记录内存数据结构设计、数据文件设计、代码设计、输入/输出设计、用户界面设计、处理过程设计。 - 系统测试:包括测试用例描述、测试方法和测试结果。 - 设计特点、不足、收获和体会:反思整个开发过程,总结经验和教训。 时间安排: - 第19周(7月12日至7月16日)完成项目。 - 7月9日8:00到计算机学院实验中心(三楼)提交程序和课程设计报告。 指导教师和系主任(或责任教师)需要在文档上签名确认。 系统需求分析: - 使用表格记录系统需求分析的结果,包括数据项、数据类型、数据长度和描述。 - 分析数据项如学生成绩信息、状态器、链表节点等,确定其属性和行为。 以上就是文档中提到的学生成绩信息管理系统开发的关键知识点。开发此类系统需要熟练掌握C++编程基础,了解面向对象的程序设计思想,以及熟悉文件操作和链表等数据结构的应用。此外,良好的软件开发流程意识、测试意识和文档撰写能力也是必不可少的。
recommend-type

别再手动拖拽了!用Lumerical脚本批量创建FDTD仿真结构(附完整代码)

# 告别低效建模:Lumerical脚本自动化实战指南 在光子学仿真领域,时间就是科研生命线。当同行还在GUI界面里反复点击菜单时,你已经用脚本批量生成了20组参数化结构——这不是未来场景,而是每位FDTD用户都应该掌握的基础生产力革命。本文将彻底改变你与Lumerical的交互方式,从手动拖拽的农耕时代,跃迁到自动化建模的工业文明。 ## 1. 为何脚本建模是必然选择 2019年Nature Photonics的一项研究显示,科研工作者在仿真工具上平均浪费37%的时间在重复性操作上。对于需要参数扫描的纳米光学结构设计,这个数字可能更高。手动创建10个不同尺寸的纳米柱阵列意味着: -
recommend-type

Java邮件解析任务中,如何安全高效地提取HTML邮件内容并避免硬编码、资源泄漏和类型转换异常?

<think>我们被要求优化一段Java代码,该代码用于处理邮件(特别是来自特定发件人的构建通知邮件)。代码的主要问题包括: 1. 重复获取邮件内容:在检查MIME类型后,多次调用`msg[i].getContent()`,这可能导致性能问题或流关闭异常。 2. 类型转换问题:直接将邮件内容转换为`Multipart`而不进行类型检查,可能引发`ClassCastException`。 3. 代码结构问题:逻辑嵌套过深,可读性差,且存在重复代码(如插入邮件详情的操作在两个地方都有)。 4. 硬编码和魔法值:例如在解析HTML表格时使用了硬编码的索引(如list3.get(10)),这容易因邮件
recommend-type

RH公司应收账款管理优化策略研究

资源摘要信息:"本文针对RH公司的应收账款管理问题进行了深入研究,并提出了改进策略。文章首先分析了应收账款在企业管理中的重要性,指出其对于提高企业竞争力、扩大销售和充分利用生产能力的作用。然后,以RH公司为例,探讨了公司应收账款管理的现状,并识别出合同管理、客户信用调查等方面的不足。在此基础上,文章提出了一系列改善措施,包括完善信用政策、改进业务流程、加强信用调查和提高账款回收力度。特别强调了建立专门的应收账款回收部门和流程的重要性,并建议在实际应用过程中进行持续优化。同时,文章也意识到企业面临复杂多变的内外部环境,因此提出的策略需要根据具体情况调整和优化。 针对财务管理领域的专业学生和从业者,本文提供了一个关于应收账款管理问题的案例研究,具有实际指导意义。文章还探讨了信用管理和征信体系在应收账款管理中的作用,强调了它们对于提升企业信用风险控制和市场竞争能力的重要性。通过对比国内外企业在应收账款管理上的差异,文章总结了适合中国企业实际环境的应收账款管理方法和策略。" 根据提供的文件内容,以下是详细的知识点: 1. 应收账款管理的重要性:应收账款作为企业的一项重要资产,其有效管理关系到企业的现金流、财务健康以及市场竞争力。不良的应收账款管理会导致资金链断裂、坏账损失增加等问题,严重影响企业的正常运营和长远发展。 2. 应收账款的信用风险:在信用交易日益频繁的商业环境中,企业必须对客户信用进行评估,以便采取合理的信用政策,降低信用风险。 3. 合同管理的薄弱环节:合同是应收账款管理的法律基础,严格的合同管理能够保障企业权益,减少因合同问题导致的应收账款风险。 4. 客户信用调查:了解客户的信用状况对于预测和控制应收账款风险至关重要。企业需要建立有效的客户信用调查机制,识别和筛选信用良好的客户。 5. 应收账款回收策略:企业应建立有效的账款回收机制,包括定期的账款跟进、逾期账款的催收等。同时,建立专门的应收账款回收部门可以提升回收效率。 6. 应收账款管理流程优化:通过改进企业内部管理流程,如简化审批流程、提高工作效率等措施,能够提升应收账款的管理效率。 7. 应收账款管理策略的调整和优化:由于企业的内外部环境复杂多变,因此制定的管理策略需要根据实际情况进行动态调整和持续优化。 8. 信用管理和征信体系的作用:建立和完善企业内部信用管理体系和征信体系,有助于企业更好地控制信用风险,并在市场竞争中占据有利地位。 9. 对比国内外应收账款管理实践:通过研究国内外企业在应收账款管理上的不同做法和经验,可以借鉴先进的管理理念和方法,提升国内企业的应收账款管理水平。 综上所述,本文深入探讨了应收账款管理的多个方面,为RH公司乃至其他同类型企业提供了应收账款管理的改进方向和策略,对于财务管理专业的教育和实践都具有重要的参考价值。
recommend-type

新手别慌!用BingPi-M2开发板带你5分钟搞懂Tina Linux SDK目录结构

# 新手别慌!用BingPi-M2开发板带你5分钟搞懂Tina Linux SDK目录结构 第一次拿到BingPi-M2开发板时,面对Tina Linux SDK里密密麻麻的文件夹,我完全不知道从哪下手。就像走进一个陌生的大仓库,每个货架上都堆满了工具和零件,却找不到操作手册。这种困惑持续了整整两天,直到我意识到——理解目录结构比死记硬背每个文件更重要。 ## 1. 为什么SDK目录结构如此重要 想象你正在组装一台复杂的模型飞机。如果所有零件都混在一个箱子里,你需要花大量时间寻找每个螺丝和面板。但如果有分门别类的隔层,标注着"机身部件"、"电子设备"、"紧固件",组装效率会成倍提升。Ti
recommend-type

Java线程池运行时状态怎么实时掌握?有哪些靠谱的监控手段?

<think>我们之前已经讨论过Java线程池监控的多种方法,包括使用第三方工具和自定义监控。现在用户再次询问Java线程池监控方法,我们需要根据引用内容以及之前讨论的内容进行总结和扩展。 引用[1]提到使用JDK自带的监控工具,引用[2]提到了三种常用的线程池创建方式,引用[3]给出了通过ThreadPoolExecutor获取线程池状态的方法。 结合之前回答的内容,我们可以将监控方法分为以下几类: 1. 使用JDK自带工具(如jconsole, jvisualvm)进行监控。 2. 通过编程方式获取线程池状态(如引用[3]所示)。 3. 扩展ThreadPoolExecutor,