【问题标题】:How do I split a text file into multiple text files by 25 lines using python? [closed]如何使用 python 将文本文件拆分为 25 行的多个文本文件? [关闭]
【发布时间】:2019-05-14 05:26:53
【问题描述】:

我有一个文本文件,比如说 FileA.txt。我想每隔 25 行拆分这个 txt 文件,所以第 0-25 行将是 File1.txt,第 26-50 行将是 File2.txt,依此类推。

我已尝试关注:

Splitting large text file into smaller text files by line numbers using Python

但运气不佳。我的 Python 技能非常基础和低级。

当我运行它时,我得到了以下错误:

"", line 1 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

然后我用 open(r'C:\Users 添加了一个 r,现在我得到 PermissionError: [Errno 13] Permission denied: 'C:\Users\joker\Desktop\LiveStream_Videos'

【问题讨论】:

  • 你的努力在哪里?您能否向我们展示并解释您已经尝试做的事情,还请具体说明,您是尝试使用 python 2.x 还是 python 3?
  • 我正在尝试使用 python 3 来实现。我尝试在此处遵循一些示例,但运气不佳。基本上我有 FileA.txt,我正在尝试使 File1.txt 包含第 0-25 行,然后是 File2.txt 26-50 等等。
  • 请在问题中包含您的努力,以及示例输入和输出
  • 我强烈建议您编辑原始问题并尝试提供尽可能多的信息,如果您不向我们展示您可以帮助自己,您将不会获得任何帮助。
  • 您的示例代码在哪里?您刚刚粘贴了一个 SO 链接,我们可以假设该问题的答案有效,因此为了帮助您,我们需要查看您的实施。

标签: python


【解决方案1】:

您可以尝试每 25 行分块,然后将它们分别写到单独的文件中:

def chunks(l, n):
    """Chunks iterable into n sized chunks"""
    for i in range(0, len(l), n):
        yield l[i:i + n]

# Collect all lines, without loading whole file into memory
lines = []
with open('FileA.txt') as main_file:
    for line in main_file:
        lines.append(line)

# Write each group of lines to separate files
for i, group in enumerate(chunks(lines, n=25), start=1):
    with open('File%d.txt' % i, mode="w") as out_file:
        for line in group:
            out_file.write(line)

注意:来自How do you split a list into evenly sized chunks? 的分块配方。

【讨论】:

  • 我尝试使用 def chunks(l, n): """Chunks iterable into n sized chunks""" for i in range(0, len(l), n): yield l[i :i + n] # 收集文件中的所有行lines = [] with open('C:\LinkTest.txt') as f: for line in f:lines.append(line) # 将每组行写入单独的文件for i, group in enumerate(chunks(lines, n=25), start=1): with open('C:\File%d.txt' % i, mode="w") as f: for line in group : f.write(line)
  • 但是,它似乎可以运行,但文件没有生成
  • @abat 试试最近的编辑,它对我有用。
  • 感谢您的帮助!!!!非常感谢
猜你喜欢
  • 2016-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-22
  • 1970-01-01
  • 1970-01-01
  • 2018-06-02
相关资源
最近更新 更多