簡體   English   中英

OSError:否這樣的文件或目錄

[英]OSError : no Such file or directory

我有以下代碼來檢查s3 bucket是否存在文件。 我給程序一個目錄,我試圖上載該目錄中的所有文件。 但是我不知道為什么我總是OSError: [Errno 2] No such file or directory: 'foo.txt'錯誤。 這是我的代碼

def s3_has_uptodate_file(bucket, transfer_file, source_size):

    bucket = Bucket(conn, default_bucket)
    s3_key = bucket.get_key(os.path.basename(transfer_file))
    if s3_key:
        s3_size = s3_key.size
        local_size = source_size
        s3_time = rfc822.mktime_tz(rfc822.parsedate_tz(s3_key.last_modified))
        local_time = os.path.getmtime(os.path.basename(transfer_file)) #fails here
        return s3_size == local_size and s3_time >= local_time
    return False

我檢查我的stackdata,並且我的存儲桶具有正確的存儲桶名稱,傳輸文件為/Users/merlin/Desktop/test_folder/foo.txt ,源大小為141 (正確大小)。

我將以下代碼行放入一個新文件中進行測試,它可以完美運行。

import os
transfer_file = '/Users/merlin/Desktop/test_folder/foo.txt'
local_time = os.path.getmtime(os.path.basename(transfer_file))
print local_time

os.path.basename(transfer_file)只會從路徑中返回文件名。 這是任何os.path方法的相對路徑。 除非您從"foo.txt"所在的目錄中運行程序,否則os.path.getmtime可能會失敗。 您需要將絕對路徑傳遞給"foo.txt" 您可能只想使用os.path.getmtime(transfer_file)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM