【问题标题】:Python: 'list' object has no attribute 'rfind' error when trying to create a directoryPython:尝试创建目录时,“list”对象没有属性“rfind”错误
【发布时间】:2017-06-30 14:04:10
【问题描述】:

所以基本上我的代码列出了目录路径。这些目录路径是根据我在 csv 文件中的信息制作的。列表中的每个元素都是一个字符串。

然后我调用一个方法,该方法接收具有目录路径的字符串,如果该目录不存在则创建该目录:

def directorymaker(dirpath):
    directory = os.path.dirname(dirpath)
    if not os.path.exists(directory):
        os.makedirs(directory)

但是我得到一个错误'list' object has no attribute 'rfind'

我该怎么办?

【问题讨论】:

    标签: python directory filepath


    【解决方案1】:

    os.path.dirname 接受代表文件路径的字符串,并返回该路径的目录部分。

    显然,在您的代码中,dirpath 是一个列表。如果你想调用os.path.dirname(dirpath),那么dirpath需要是一个字符串。

    【讨论】:

    • 好吧,我把它称为 directorymaker(str(samplepaths[i])) (我在循环中调用它)
    • 不,不会吧?
    • 您只在问题中发布了directorymaker 函数的代码,所以我不知道samplepaths 是什么以及您如何使用它。尝试发布minimal reproducible example
    • 我最终遇到了一个愚蠢的语法错误,现在我已修复。代码有效,但是目录让我们假设我们有一个这样的目录路径:/greatgrandparent/grandparent/parent/child。目录被创建到父级,但子目录没有被创建。
    • 如果您还有其他问题,您应该将其与minimal reproducible example 一起发布在一个新问题中。您的评论中没有足够的信息让我帮助您。
    猜你喜欢
    • 1970-01-01
    • 2016-07-01
    • 2016-04-26
    • 1970-01-01
    • 2016-09-12
    • 2018-09-28
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    相关资源
    最近更新 更多