小编Chi*_*nce的帖子

Python中的UnicodeDecodeError在读取文件时,如何忽略错误并跳转到下一行?

我必须将文本文件读入Python.文件编码是:

file -bi test.csv 
text/plain; charset=us-ascii
Run Code Online (Sandbox Code Playgroud)

这是第三方文件,我每天都会得到一个新文件,所以我宁愿不改变它.该文件具有非ascii字符,例如Ö.我需要使用python读取行,并且我可以忽略具有非ascii字符的行.

我的问题是,当我在Python中读取文件时,在到达存在非ascii字符的行时,我得到UnicodeDecodeError,而我无法读取文件的其余部分.

有没有办法避免这种情况.如果我试试这个:

fileHandle = codecs.open("test.csv", encoding='utf-8');
try:
    for line in companiesFile:
        print(line, end="");
except UnicodeDecodeError:
    pass;
Run Code Online (Sandbox Code Playgroud)

然后当达到错误时,for循环结束,我无法读取文件的剩余部分.我想跳过导致错误的行并继续.如果可能的话,我宁愿不对输入文件进行任何更改.

有没有办法做到这一点?非常感谢你.

python file utf-8 python-3.x

17
推荐指数
1
解决办法
3万
查看次数

在命令行中将XLSB文件转换为Linux中的csv

我有成千上万的XLSB文件(二进制excel文件).我在Ubuntu上,需要将它们全部转换为CSV.每个文件都有很多宏和标签,但是,所有这些内容都可以忽略,因为每个文件我只需要第一个标签中的数据.

有没有办法通过命令行来做?

linux excel command-line

6
推荐指数
1
解决办法
3029
查看次数

C++ printf函数中的参数化前导零

我的问题很简单.我想使用printf打印具有指定数量的前导零的整数.但是,前导零的数量是由运行时决定的,而不是先验的.我怎么能这样做?

如果我知道字符的数量(比方说5),那就是

printf("%05d", number);
Run Code Online (Sandbox Code Playgroud)

但我不知道它是否会是5.

c++ printf

4
推荐指数
2
解决办法
483
查看次数

标签 统计

c++ ×1

command-line ×1

excel ×1

file ×1

linux ×1

printf ×1

python ×1

python-3.x ×1

utf-8 ×1