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

将文件夹名称作为前缀添加到文件名

壤驷凯
2023-03-14

我在不同的文件夹中动态创建文件,像这样:

curr_dir = "/a/b/c"
filename = os.path.join(curr_dir, 'file.text')

这给了我:

"/a/b/c/file.text"

但由于我正在许多文件夹中创建同名文件,因此我希望通过添加文件夹名称作为前缀来区分它们,以获得:

"a/b/c/c_file.text"

我怎么能得到这个?

共有2个答案

包丁雨
2023-03-14
texfile = os.path.join(curr_dir, 'all_files.tex')

仅将当前目录路径连接到文件名。

你应该有这样的东西:

texfile = os.path.join(curr_dir, os.path.basename(curr_dir)+'_all_files.tex')
洪鸿
2023-03-14

请改用pathlib包:

>>> from pathlib import Path
>>> Path()
WindowsPath('.')

>>> Path().absolute()
WindowsPath('C:/Users/p00200284/test')

>>> Path().absolute().parent
WindowsPath('C:/Users/p00200284')

>>> Path().absolute().parent / "all_files.tex"
WindowsPath('C:/Users/p00200284/all_files.tex')

>>> str(Path().absolute().parent / "all_files.tex")
'C:\\Users\\p00200284\\all_files.tex'

>>> Path().absolute().parent.name
'p00200284'

>>> f"{Path().absolute().parent.name}_all_files.tex"
'p00200284_all_files.tex'

>>> parent_dir = Path().absolute().parent
>>> parent_dir / f"{Path().absolute().parent.name}_all_files.tex"
WindowsPath('C:/Users/p00200284/p00200284_all_files.tex')
 类似资料:
  • 问题内容: 我正在解析由外部程序生成的xml文件。然后,我想使用自己的名称空间将自定义注释添加到此文件。我的输入如下所示: 问题是lxml仅在使用命名空间时才声明它们,这意味着该声明会重复多次,就像这样(简化): 是否可以强制lxml在诸如或的父元素中只编写一次此声明?还是有充分的理由不这样做?我想要的结果是: 一个重要的问题是必须保留从文件中读取的现有数据,因此我不能仅制作一个新的根元素(我想?

  • Python版本:2.7.13 操作系统:Windows 因此,我正在编写一个脚本,根据文件名中包含文件夹名的要求,将各种名称的文件复制到特定文件夹中。(我对这一点相当陌生,只是想在工作中创建更高效的脚本——我查看了大量StackOverflow页面和web上的一些地方,但找不到与此特定任务相关的Python) 我已经将文件夹转换为一个字符串列表,我可以搜索文件名,但是当我将它们复制到上面时,它们

  • 问题内容: 我想创建一个zip文件。在zip文件中添加一个文件夹,然后在该文件夹中添加一堆文件。 因此,我想得到一个压缩文件,里面只有一个文件夹。 我不知道在zip文件或其他内容中包含文件夹是否是一种不好的做法,但是google在这个问题上没有给我任何帮助。 我从这个开始: 摘自:http : //mail.python.org/pipermail/python- list/2006-August

  • 问题内容: 我正在尝试将一些文件添加到ZIP文件中,它会创建文件,但不会在其中添加任何内容。代码1: 我的功能: 编辑: 我发现了问题,只是在将文件从C:\驱动器写入F:\驱动器的ZIP时遇到麻烦 问题答案: 您不能压缩文件夹,只能压缩文件。要压缩文件夹,必须手动添加所有子文件。我写了本课来完成这项工作。您可以免费获得它:) 用法是这样的: 这是课程: 请享用! 编辑 :要检查程序是否仍在忙,可以

  • 我有一个包含10个图像的文件夹,我希望根据其当前文件名将其移动到一个新文件夹中。我已经成功地将文件夹中的每个图像移动到了一个新文件夹中,到目前为止,我已经成功地将每个图像文件名移动到了它自己的文件夹中,但我还没有弄清楚如何将具有相同文件名的所有图像移动到一个文件夹中,然后将另一个移动到另一个文件夹中。例如,下面我想相应地移动图像。 1600_01.jpg--- 到目前为止,这是我的代码,通过根据图