为什么我的read_lines_chunked出现嵌入式null错误?

时间:2019-08-29 20:57:18

标签: readr

我从read_lines_chunked收到一个奇怪的错误,
  在字符串中嵌入nul:“ \ 0Project-Id-Version:R 2.1.0”,并且不确定我如何得到该错误。我怀疑我的原始文件中确实有一个嵌入式nul,但是不确定为什么read_lines_chunked报告此错误,因为我的文件与R无关,当然也与该旧版本无关。

read_lines_chunked在测试问题上可以很好地工作,例如,通过生成两列随机数,并将其写为文本文件。然后我用read_lines_chunked重新读回它,并且工作正常,即得到预期的输出。但是,无论出于何种原因,对于我的文件,我都会收到嵌入式nul错误。我进行了一次谷歌搜索,某些条目似乎适用,例如,我尝试替换文件中的nul字节,但这并没有消除错误。

f1 <- function(chunk,pos) length(chunk)
r <- read_lines_chunked("debug.out.1",ListCallback$new(f1),chunk_size=5)
Error in read_lines_chunked_(ds, locale, na, chunk_size, callback, progress) : 
  embedded nul in string: '\0Project-Id-Version: R 2.1.0'

> sessionInfo()
R version 3.6.0 (2019-04-26)
Platform: x86_64-redhat-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)

Matrix products: default
BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] readr_1.3.1

loaded via a namespace (and not attached):
 [1] compiler_3.6.0  R6_2.4.0        hms_0.4.2       tools_3.6.0    
 [5] pillar_1.4.1    tibble_2.1.3    Rcpp_1.0.1      crayon_1.3.4   
 [9] pkgconfig_2.0.2 rlang_0.3.4  

我希望得到一个列表,每个条目都报告chunk_size(5),但是实际结果是“嵌入式nul”错误。另外,R偶尔也会崩溃。如果有人感兴趣,我可以发送原始文件。

0 个答案:

没有答案