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

Python读取文件转int时报ValueError: '\ufeff615'如何解决?

错误原因
  • 报错信息中的\ufeff是UTF-8的字节顺序标记(BOM),属于不可见特殊字符,是in文件保存时选择了「带BOM的UTF-8」编码格式,系统自动写入到文件开头的标识
  • 代码默认以普通无BOM的UTF-8规则读取文件,不会自动过滤这个标记,读取第一行内容时会把\ufeff和后续的数字615拼接为一个字符串,无法被int()函数识别转换,因此抛出数值错误
  • 额外说明:你给出的代码片段缺少import sys的导入声明,即使解决BOM问题直接运行也会抛出NameError
修复方案

你可以任选以下任意一种方式修复:

  • 方案1:修改文件编码
    用文本编辑器(VS Code、记事本、Notepad++等)打开in文件,重新保存时选择「UTF-8(无BOM)」编码格式即可,无需修改代码即可正常运行得到预期输出。
  • 方案2:修改代码适配带BOM的文件
    打开文件时指定utf-8-sig编码,该编码会自动识别并移除开头的BOM标记,同时补全缺失的sys导入,修改后的完整代码如下:
import sys

def testcase(number: int, solve_function):
    while (number != 0):
        solve_function()
        number -= 1

def map_input(datatype):
    return map(datatype, sys.stdin.readline().split())

# 仅修改打开文件的编码参数即可
sys.stdin = open('in', 'r', encoding='utf-8-sig')
sys.stdout = open('out', 'w')

def solve():
    D, P = map_input(int)
    T = D / P + 37
    print('%.3f'% T)

testcase(1, solve)

运行修改后的代码,out文件中就会输出预期的92.909结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 20:15:03