WinError 2-os.path.getmtime在Python 3中找不到文件

时间:2019-03-06 15:35:35

标签: python loops os.path

我在处理一些代码时遇到了麻烦,这些代码旨在将多个文件的“上次修改日期”写入CSV文档。

我所有其他功能均正常运行,但是此函数返回:

FileNotFoundError: [WinError 2] The system cannot find the file specified: 'filenamesoandso.docx'

这里是上下文:

pathList = ["S:\\BUILDING\\",
        "S:\\ONGOING PROJECTS\FACILITY OPERATIONS\OPERATIONS\\"
        ]

def file_date_modified(pathList):
sys.stdout = open("date modified.txt", "w+")
for root, dirs, files, in os.walk(a):
    for file in files:
        if file.endswith(".pdf"):
             print(time.ctime(os.path.getmtime(file)))
        if file.endswith(".pptx"):
             print(time.ctime(os.path.getmtime(file)))
        if file.endswith(".doc"):
             print(time.ctime(os.path.getmtime(file)))
        if file.endswith(".docx"):
             print(time.ctime(os.path.getmtime(file)))
        if file.endswith(".xlsx"):
             print(time.ctime(os.path.getmtime(file)))

for a in pathList:
    file_date_modified()

我知道此错误通常表明它在错误的目录中查找,但根据此处对其他问题的答复,一直无法提供修复程序。这是我一直在使用的另一个函数的示例,该函数可以正常工作,我不确定为什么该函数可以识别正确的路径,而前一个函数却不能。

def file_name_print(pathList):
sys.stdout = open("file names.txt", "w+")
for root, dirs, files in os.walk(a):
    for file in files:
        if file.endswith(".pdf"):
             print(os.path.splitext(file)[0])
        if file.endswith(".pptx"):
             print(os.path.splitext(file)[0])
        if file.endswith(".doc"):
             print(os.path.splitext(file)[0])
        if file.endswith(".docx"):
             print(os.path.splitext(file)[0])
        if file.endswith(".xlsx"):
             print(os.path.splitext(file)[0])

我仍然是菜鸟,所以有可能我忽略了一些愚蠢的事情。

1 个答案:

答案 0 :(得分:0)

您可能需要将目录附加到文件名,因为看起来文件的目录与脚本的当前工作目录不同。

执行此操作的方式可能是:

for file in files:
    file_path = os.path.join(root, file)

    if file.endswith(".pdf"):
         print(time.ctime(os.path.getmtime(file_path)))

对您有用吗?