python - 操作系统错误: no Such file or directory

标签 python

我有以下代码来检查我的 s3 存储桶中是否存在文件。我给程序一个目录,然后尝试上传该目录中的所有文件。但是我不知道为什么我一直遇到 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

我检查了我的堆栈数据,我的存储桶具有正确的存储桶名称,传输文件为 /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)

关于python - 操作系统错误: no Such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29151208/

相关文章:

python - 查找所有希腊文本中带连字符的单词

python - AWS DynamoDB Python - 不从 table.scan() 返回属性

python - 删除具有高百分比 NaN 值的 Pandas 列

python - Beautifulsoup 部分提取字符串

python - 从 Django ORM 检索查询

python - Django:类 'Project' 未定义 '_add_' ,因此 '+' 运算符不能在其实例上使用

Python 字符串格式为 float ,如何截断而不是舍入

python - 为什么此代码不保存带有标题的图形?

Python文字游戏。第一个单词的最后一个字母 == 第二个单词的第一个字母。找到最长可能的单词序列

python - Reportlab,相关文件链接