当前位置: 首页 > 知识库问答 >
问题:

如何在python中将.txt文件从多个文件夹复制到excel

琴正初
2023-03-14

我以.txt格式抓取了NLP数据,需要将其复制到Excel。数据位于名为“article”的文件夹中。此文件夹中包含2012年至2020年的其他子文件夹。子文件夹的名称为日期,例如“2012-04-18”。每个子文件夹中都有几个.txt文件。

我想:复制每个. txt文件的内容,并将它们与子文件夹上显示的相应日期匹配到excel文件中。因此excel文件将有一列日期(从子文件夹复制)和相应的行,其中包含. txt文件的内容。供参考[1]

下面的代码可能是一个起点,尽管我认为它在子文件夹上迭代而不读取每个. txt文件,并输出一个空的excel。任何帮助都很感激。

import os
from typing import List
import openpyxl
from openpyxl.utils import get_column_letter

def text_into_spreadsheet():
    """main logic for read .txt into spreadsheet"""
    workbook = openpyxl.Workbook()
    sheet = workbook.active
    column: int = 1
    article: List[str] = os.listdir('../FolderA/FolderB/article/') 
    for file in article:
            if file.endswith(".txt"):
                 with open(file) as textfile:
                    lines: List[int] = textfile.readlines()
                    sheet[get_column_letter(column) + '1'] = file
                    row: int = 2
                    for line in lines:
                        sheet[get_column_letter(column) + str(row)]=line
                    row += 1
                    column += 1
    workbook.save('result.xlsx')```


  [1]: https://i.stack.imgur.com/YZfVd.png

共有1个答案

范凡
2023-03-14

从您的代码中,我发现您至少没有像前面提到的那样迭代“2012-04-18”这样的子文件夹。因此,您需要添加一个额外的循环:

root_dir = '../FolderA/FolderB/article/'
for subfolder in os.listdir(root_dir):
    for filename in os.listdir(os.path.join(root_dir, subfolder)):
        if filename.endswith(".txt"):
            with open(os.path.join(root_dir, subfolder, filename)) as fp:
                # ....
 类似资料:
  • //我得到的错误是java。尼奥。文件FileAlreadyExistsException所以据我所知,它试图将文件保存到确切的位置,而不是保存在文件中,如果我将目标地址改为“垃圾/垃圾”,我需要以这种方式保存几个文本文件。它将在那里保存一个名为垃圾的文件。txt。但在for-each的下一个循环中,它会抛出一个“已经存在”的异常。。。 有人能解释一下我如何从src文件夹将所有txt文件保存到该文

  • 我必须将ant项目转换为gradle项目。在这里,当我运行gradle构建时,它创建了war文件,当它部署在服务器上时,分解的war文件夹有两个文件夹META-INF和WEB-INF,我的要求是1。将web.xml从图像中看到的config文件夹复制到WEB-INF文件夹,并将图像中看到的jsp文件夹复制到分解文件夹

  • 如何使用java将文件从一个文件夹复制到另一个文件夹?我试图使用 如果目标文件夹不包含具有相同名称的文件,则此操作有效。如果我尝试将文件粘贴到文件夹中,它会引发IOException。然而,有什么办法可以解决这个问题吗?可能我只想将自动重命名为pasteItem(1)或类似名称的文件粘贴。请建议。 事实上,如果同名文件已经存在,我将为该文件获得一个新名称。我不知道如何复制文件,然后重命名。如果我先

  • 将名为“file.png”的文件复制到文件夹列表中的多个文件夹时出现问题。(使用Windows cmd/.bat)。 例如: 源/file.png 目的地/folder1 目的地/folder2 目的地/folder3 目的地/folder4 目的地/folder5 等... 要复制文件的文件夹列表。png: 文件夹列表。txt: 文件夹2 文件夹4 文件夹5 仅使用cmd(.bat)将源/文件。

  • 我有一个Windows文件夹结构和文件,如下所示 c:\源文件\file1.txt c:\源文件夹\subfolder1\file2.txt c:\源文件夹\子文件夹2\file3.txt 我想复制所有文件到目标文件夹,如下所示 c:\DestinationFile\file1.txt c:\DestinationFile\file2.txt c:\DestinationFile\file3.tx

  • 问题内容: 这个问题已经在这里有了答案 : 使用Java将文件从一个目录复制到另一个目录 (33个答案) 4年前关闭。 如何将一个文件夹及其所有子文件夹和文件复制到另一个文件夹中? 问题答案: Apache Commons IO可以为您解决问题。看看FileUtils。