这两个制表符分隔的 .txt 文件之间有什么区别导致 .split("\t") 正确地将值与一个而不是另一个分开?

What is the difference between these two tab-delimited .txt files that is causing .split("\t") to properly separate values from one but not the other?

我有两份来自不同来源的日语词频报告。每行包含一个单词及其出现次数,由制表符分隔。我还有一个 python 脚本,它应该使用 .split("\t") 将每一行拆分为这两个值。然后将后一个值转换为整数,这就是错误的来源:

ValueError: invalid literal for int() with base 10: '\ufeff29785713'

这只发生在第二个文件的数据上。

测试将数字转换为浮点数是否可行(或更改错误),结果是这样的:

ValueError: could not convert string to float: '\ufeff29785713'

这是不是因为第二个文件中的制表符或数字可能在技术上不是相同的字符并且没​​有正确定界,导致后一个值中出现不需要的字符(或者可能根本没有拆分)?两个文件都是 UTF-8 编码的。

Shorter version of first file(工作中)

Shorter version of second file

老实说,根本不是 python 开发人员,但鉴于您的第二个数组元素包含一个流氓字符对,您可以在拆分之后和转换为数字之前尝试将其删除:

x[1] = x[1].replace('\ufeff', '')

x 是您将行拆分成的数组的名称。替换操作对第一个文件没有影响,因为 FEFF 不存在