[英]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.