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

如何从路径字符串中获取文件夹名称并将其添加到dataframe中的新列中?

楚元章
2023-03-14

我想从文件中读取文件夹tar.gz名称,并创建包含名称的列。

我使用这个代码:

file_path = r"C:\Users\filename.tar.gz"
start_with = './mainfolder/'

import tarfile
import re
with tarfile.open(file_path, "r:*") as tar:
    csv_path = tar.getnames()
    csv_path = list(n for n in tar.getnames() if (n.endswith('.csv')) & (n.startswith(start_with)))
    df = pd.DataFrame()

    csv_list = []

    for file in csv_path:
        df_temp = pd.read_csv(tar.extractfile(file))
        csv_list.append(df_temp)

    df = pd.concat(csv_list)

在主文件夹中,只有少数几个文件夹具有名称。从文件夹“X”(例如)读取csv文件后,应在此csv文件中创建“FolderName”列,并且必须包含所有行的文件夹名称(“X”)。对于每个csv文件也是如此。

路径字符串的示例:./main文件夹/1001_name./main文件夹/1002_some_name

共有1个答案

夏飞掣
2023-03-14
df_temp = pd.read_csv(tar.extractfile(file))

您可以使用os.path.dirname()方法filepath字符串获取文件夹名称。更多信息请点击这里。

您需要导入操作系统模块。

例子:

#returns ./mainfolder/1001_name
full_folder_path = os.path.dirname(file)

#returns 1001_name
folder = os.path.basename(full_folder_path)

#returns name bit
result = folder[folder.index('_')+1:]

df_temp['FolderName'] = result

这将创建一个名为FolderName的新列,并为所有行设置值。更多信息请点击这里。

 类似资料:
  • 我有一个带有文件输入字段的表单: 然后我做的东西与此图像文件提交: 我要保存图像的目录名为,与上面的目录相同。 您可能会注意到,在上面我在类insertBlog`的代码是: 当用户填写表单时,除了图像信息之外,它还将所有其他信息正确地存储在MySQL表中。此外,它不会将实际图像存储在文件夹中。那么,如何让这个脚本将图像上传到文件夹,并将其路径存储在mysql表中呢。目前,它没有将图像存储在数据库中

  • 问题内容: 变量包含文件名。如何仅将文件名作为字符串获取? 我计划拆分字符串,但这不是最佳解决方案。 问题答案: 只需使用 File.getName() 使用 String方法 :

  • 问题内容: 我只想从完整路径到文件获取文件夹路径。 例如,我想要得到(不包括)。 我已经尝试过这样的事情: 但是它给了我这样的结果: 这不是我需要的结果(为)。 关于如何获取文件路径的任何想法? 问题答案: 您几乎可以使用该功能了。您只需要加入字符串,如下所示。 虽然,我建议使用该函数来执行此操作,但是您只需要传递字符串即可,它将为您完成工作。由于您似乎在Windows上,因此也考虑使用该功能。一

  • 我想从SD卡文件路径中获取文件名。e、 g.:/storage/sdcard0/DCIM/Camera/1414240995236。jpg我想得到1414240995236。jpg我已经编写了获取相同内容的代码,但它不起作用。请帮忙<下面是我的代码:

  • 我只想从文件的完整路径中获取文件夹路径。 例如,我希望只得到(不包括)。 我曾经尝试过这样的事情: 但它给了我这样一个结果: 这不是我需要的结果(是)。 关于如何获取文件路径有什么想法吗?