微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

自定义功能无法使用字典中的所有项目

如何解决自定义功能无法使用字典中的所有项目

我正在用python编写代码,遇到一个问题。 我做了一个函数,它可以扫描文件夹,并获取与上次的日期和时间进行比较的最后修改的日期和小时,并将其存储在文本文件中。该功能很好用。 我发现要为多个文件调用它,我必须制作一个字典,其中包含文件夹列表和每个文本文件输出名称

我的问题是,当我运行它时,它仅适用于3个中的1个“项目”。

这是我的代码

    import os,glob,time,datetime


def my_function(output_name,input_dir):
    with open(output_name,"w+") as f:
        os.chdir(input_dir)
        for fichiers in glob.glob("*"):
            today = datetime.datetime.today()
            modified_date = datetime.datetime.fromtimestamp(os.path.getmtime(fichiers))
            duration = today - modified_date
            if duration.days < 5:
                f.write(f"{fichiers} = {duration} \n")

arguments = {"output1.txt" : "input_dir1/","output2.txt" : "input_dir2/","output3.txt" : "input_dir3/"}
for output_name,input_dir in arguments.items():
    my_function(output_name,input_dir)

在这种情况下,我应该有3个文本文件,每个文件分别名为output 1、2和3,每个input_dir都有信息,除了我只有从input_dir1获得的output1.txt。

感谢您的帮助

解决方法

请注意,您调用os.chdir()时不会返回到先前的目录,这就是为什么它仅在第一次运行时有效的原因,更好的方法是将目录作为参数传递给glob.glob() {{ 3}}。

但是,如果您设置了os.chdir()方法,请确保调用os.getcwd()稍后再返回。

,

好吧,这只是我的愚蠢。我正在使用Visual Studio代码,我想是因为它没有列出无法正常使用的新创建文件。除了它,而且它不会正确列出它:/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。