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

兰德尔·伊万·卡森

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

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

这仅发生在来自第二个文件的数据中。

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

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

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

第一个文件的较短版本(工作)

第二个文件的较短版本

凯厄斯·贾德

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章