fs::dir_ls() returns 内部包含中文字符的文件路径的不可读输出
fs::dir_ls() returns unreadable output for file paths with chinese characters inside
我正在使用fs::dir_ls()
获取目录main_path
下的excel个文件路径,但是由于文件路径中有中文字符,我得到了不可读的输出,我认为这可能与编码问题有关:
main_path <- '../../raw_data/2022-01-10/'
file_paths <- fs::dir_ls(main_path, regexp = ".xlsx")
file_paths
输出:
../../raw_data/2022-01-10/閽㈤搧_鐒︾偔_浠峰樊_鐒︾偔J2201DCE鐒︾偔J2205DCE_涓诲姏_2022-01-10.xlsx
../../raw_data/2022-01-10/閽㈤搧_鐒︾偔_浠峰樊_鐒︾偔J2201DCE鐒︾偔J2209DCE_2022-01-10.xlsx
虽然 list.files(path = main_path, pattern ='.xlsx')
returns 文件名正确:
[1] "甘其毛道库提价含税焦煤A23V2606SG85JM焦煤JM2201DCE_2022-01-10.xlsx"
[2] "甘其毛道库提价含税焦煤A23V2606SG85JM焦煤JM2205DCE_2022-01-10.xlsx"
我使用的fs
包版本:
Warning message:
package ‘fs’ was built under R version 4.1.2
有人知道如何处理这个问题吗?或者是否有等效的方法可以在 R 中的目录下获取 excel 文件路径?谢谢。
更新:
我没有找到导致这个错误的原因,它可能与 RStudio 的 locale
有关,因为它适用于我的 Mac 但不适用于 Windows 10 机器,我已设置 Sys.setlocale("LC_ALL","zh_CN.utf-8")
,也不起作用,但我找到了替代解决方案:
file_names <- list.files(path = main_path, pattern ='.xlsx')
file_paths <- file.path(main_path, file_names)
输出:
[1] "../../raw_data/2022-01-10/甘其毛道库提价含税焦煤A23V2606SG85JM焦煤JM2201DCE_2022-01-10.xlsx"
[2] "../../raw_data/2022-01-10/甘其毛道库提价含税焦煤A23V2606SG85JM焦煤JM2205DCE_2022-01-10.xlsx"
参考:
当fs
包的版本高于1.5.0
时,问题是可用的,所以将fs
降级到1.5.0
可以用代码修复它:
devtools::install_version("fs", "1.5.0")
我正在使用fs::dir_ls()
获取目录main_path
下的excel个文件路径,但是由于文件路径中有中文字符,我得到了不可读的输出,我认为这可能与编码问题有关:
main_path <- '../../raw_data/2022-01-10/'
file_paths <- fs::dir_ls(main_path, regexp = ".xlsx")
file_paths
输出:
../../raw_data/2022-01-10/閽㈤搧_鐒︾偔_浠峰樊_鐒︾偔J2201DCE鐒︾偔J2205DCE_涓诲姏_2022-01-10.xlsx
../../raw_data/2022-01-10/閽㈤搧_鐒︾偔_浠峰樊_鐒︾偔J2201DCE鐒︾偔J2209DCE_2022-01-10.xlsx
虽然 list.files(path = main_path, pattern ='.xlsx')
returns 文件名正确:
[1] "甘其毛道库提价含税焦煤A23V2606SG85JM焦煤JM2201DCE_2022-01-10.xlsx"
[2] "甘其毛道库提价含税焦煤A23V2606SG85JM焦煤JM2205DCE_2022-01-10.xlsx"
我使用的fs
包版本:
Warning message:
package ‘fs’ was built under R version 4.1.2
有人知道如何处理这个问题吗?或者是否有等效的方法可以在 R 中的目录下获取 excel 文件路径?谢谢。
更新:
我没有找到导致这个错误的原因,它可能与 RStudio 的 locale
有关,因为它适用于我的 Mac 但不适用于 Windows 10 机器,我已设置 Sys.setlocale("LC_ALL","zh_CN.utf-8")
,也不起作用,但我找到了替代解决方案:
file_names <- list.files(path = main_path, pattern ='.xlsx')
file_paths <- file.path(main_path, file_names)
输出:
[1] "../../raw_data/2022-01-10/甘其毛道库提价含税焦煤A23V2606SG85JM焦煤JM2201DCE_2022-01-10.xlsx"
[2] "../../raw_data/2022-01-10/甘其毛道库提价含税焦煤A23V2606SG85JM焦煤JM2205DCE_2022-01-10.xlsx"
参考:
当fs
包的版本高于1.5.0
时,问题是可用的,所以将fs
降级到1.5.0
可以用代码修复它:
devtools::install_version("fs", "1.5.0")