Python 3.x 试图用boto3从创建该文件的同一脚本上载该文件,但出现错误:没有这样的文件或目录

Python 3.x 试图用boto3从创建该文件的同一脚本上载该文件,但出现错误:没有这样的文件或目录,python-3.x,amazon-web-services,amazon-s3,file-upload,boto3,Python 3.x,Amazon Web Services,Amazon S3,File Upload,Boto3,这是密码 with open('browse_venues_current_content.json', 'w') as my_file: json.dump(endproduct, my_file) import boto3 s3 = boto3.resource('s3') result = s3.meta.client.upload_file('my_file', 'shofi-stuff', 'browse_venues_current_content.json') pri

这是密码

with open('browse_venues_current_content.json', 'w') as my_file:
  json.dump(endproduct, my_file)

 import boto3
 s3 = boto3.resource('s3')
 result = s3.meta.client.upload_file('my_file', 'shofi-stuff', 'browse_venues_current_content.json')
 print(result)
以下是错误:

 line 50, in getsize
    return os.stat(filename).st_size
FileNotFoundError: [Errno 2] No such file or directory: 'my_file'

我该怎么办?

看来这是我的赢家

upload_fileobj方法接受一个可读的类似文件的对象。必须以二进制模式而不是文本模式打开文件对象

s3 = boto3.client('s3')
with open("FILE_NAME", "rb") as f:
    s3.upload_fileobj(f, "BUCKET_NAME", "OBJECT_NAME")

upload_file和upload_fileobj方法由S3客户机、Bucket和对象类提供。每个类提供的方法功能是相同的。调用一个类的方法而不是调用另一个类的方法不会带来任何好处。选择最方便的课程。

看来这是我的赢家

upload_fileobj方法接受一个可读的类似文件的对象。必须以二进制模式而不是文本模式打开文件对象

s3 = boto3.client('s3')
with open("FILE_NAME", "rb") as f:
    s3.upload_fileobj(f, "BUCKET_NAME", "OBJECT_NAME")

upload_file和upload_fileobj方法由S3客户机、Bucket和对象类提供。每个类提供的方法功能是相同的。调用一个类的方法而不是调用另一个类的方法不会带来任何好处。使用最方便的类。

您应该使用
浏览当前内容。json
而不是
“我的文件”


您应该使用
浏览当前内容.json
而不是
“我的文件”


@ChristopherJakob似乎您正在以写入模式(
mode='w'
)打开文件,这是您最初的问题,而不是我的答案。@ChristopherJakob我不得不注释掉您的json转储,因为我不知道
最终产品是什么。我的理解是,
browse\u ventions\u current\u content.json
文件存在,你打开它并上传到s3吗?“你的意图不一样吗?”克里斯托弗·贾科布,我明白了。我更新了答案。@ChristopherJakob
upload\u file
当时是正确的。看起来这可能起作用了。我有一个错误,与此无关,我知道如何修复。我会更新你的。但是谢谢你的帮助@ChristopherJakob似乎您正在以写入模式(
mode='w'
)打开文件,这是您最初的问题,而不是我的答案。@ChristopherJakob我不得不注释掉您的json转储,因为我不知道
最终产品是什么。我的理解是,
browse\u ventions\u current\u content.json
文件存在,你打开它并上传到s3吗?“你的意图不一样吗?”克里斯托弗·贾科布,我明白了。我更新了答案。@ChristopherJakob
upload\u file
当时是正确的。看起来这可能起作用了。我有一个错误,与此无关,我知道如何修复。我会更新你的。但是谢谢你的帮助!!