首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何结合使用Windows命令行删除BOM的几个文件?

如何结合使用Windows命令行删除BOM的几个文件?
EN

Stack Overflow用户
提问于 2022-04-07 21:24:11
回答 1查看 161关注 0票数 2

我有几个非常大的CSV (技术上TSV)文件,我需要附加在一起。我用过:

代码语言:javascript
复制
copy file1.txt + file2.txt + ... + fileN.txt combined.txt

但随后发现每个文件都有一个BOM在开始(),然后出现多次在文件的中间。

但是,文件非常大(每行3000万至4000万行),因此我无法在NotePad++中打开它们并重新保存它们以删除BOM,因此需要命令行解决方案( cmd或PowerShell),而且理想情况下不需要下载额外的库。

概述:

  • 文件太大,无法在例如NotePad++中打开,因此解决方案需要用于命令行
  • 这是在Windows上,而不是*nix

(在我的例子中,N=4,所以我可以处理一个解决方案,从一个单独的文件中删除BOM,所以在组合之前先对每个文件运行这个方法)

编辑:这可能是一个可能的解决方案:批处理脚本从文件中删除BOM ( file ),但是我对编码和PowerShell/批处理的知识太差了,以至于我甚至无法判断它是否适用!我不介意合并的文件是ANSI还是UTF-8 (我将把它加载到一个可以处理这两种情况的程序中),只要它在内部是一致和正确的。

EN

回答 1

Stack Overflow用户

发布于 2022-04-09 16:16:51

最后我放弃了,用Python (坚持你所知道的,嗯?):

代码语言:javascript
复制
import shutil

with open("combined.txt", "w", encoding="utf-8") as wfd:
    for f in my_file_iterator():
        with open(f, "r", encoding="utf-8-sig") as fd:
            shutil.copyfileobj(fd, wfd)

用选择的方法或表达式替换my_file_iterator(),以循环处理文件,例如基于pathlib.Path.glob()的内容

在这些答案的帮助下:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71789083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档