Python open表示文件不';当它存在时,它就不存在了
我正在试图弄清楚为什么我的Python open调用会说一个文件不存在,而它确实存在。如果我在浏览器中输入完全相同的文件url,则会显示照片 我收到的错误消息是:Python open表示文件不';当它存在时,它就不存在了,python,amazon-s3,Python,Amazon S3,我正在试图弄清楚为什么我的Python open调用会说一个文件不存在,而它确实存在。如果我在浏览器中输入完全相同的文件url,则会显示照片 我收到的错误消息是: No such file or directory: 'https://yhistory.s3.amazonaws.com/media/userphotos/1_1471378042183_cdv_photo_033.jpg' Python代码是: full_path_filename = 'https://' + settings
No such file or directory: 'https://yhistory.s3.amazonaws.com/media/userphotos/1_1471378042183_cdv_photo_033.jpg'
Python代码是:
full_path_filename = 'https://' + settings.AWS_STORAGE_BUCKET_NAME + '.s3.amazonaws.com/' + file_name
fd_img = open(full_path_filename, 'r')
我想知道这个问题是否与AWS S3存储桶中的文件有关,但我可以连接到该存储桶并列出其内容。如果您试图通过internet打开文件,您应该这样做(假设您使用的是python 3):
这将下载实际的文件。您可以将
文件
用作另一个类似文件的对象。如果您试图通过internet打开一个文件,您应该执行以下操作(假设您使用的是python 3):
这将下载实际的文件。您可以将
文件
用作另一个类似文件的对象。是您计算机上的文件名,或者您正试图通过internet访问它?如果您试图通过internet访问文件,则需要使用类似于urllib2
或requests
的模块。Python代码正在连接到internet的笔记本电脑上运行。open
函数用于打开可通过路径名访问的文件<代码>https://yhistory.s3.amazonaws.com/media/userphotos/1_1471378042183_cdv_photo_033.jpg是一个URL,而不是路径名,因此open
对它不起作用。对于通过Internet的请求,您必须显式使用模块中的函数,即您计算机上的文件名,或者您正试图通过internet访问它?如果您试图通过internet访问文件,则需要使用类似于urllib2
或requests
的模块。Python代码正在连接到internet的笔记本电脑上运行。open
函数用于打开可通过路径名访问的文件<代码>https://yhistory.s3.amazonaws.com/media/userphotos/1_1471378042183_cdv_photo_033.jpg是一个URL,而不是路径名,因此open
对它不起作用。您必须使用模块中的函数来显式处理通过Internet的请求Pythonrequests
是一个功能强大的HTTP库,可以方便地处理Cookie和SSL等困难的内容。有关如何解构请求
响应对象的一些示例,请参阅。此外,由于您使用的服务可能需要登录,因此您可能需要进行两个事务:一个用于提供登录凭据并获取会话cookie,另一个用于获取文件。Pythonrequests
是一个功能强大的HTTP库,可以方便地处理cookie和SSL等困难的内容。有关如何解构请求
响应对象的一些示例,请参阅。此外,由于您使用的服务可能需要登录,因此可能需要进行两个事务:一个用于提供登录凭据并获取会话cookie,另一个用于获取文件。
import urllib.request
full_path_filename = 'https://' + settings.AWS_STORAGE_BUCKET_NAME + '.s3.amazonaws.com/' + file_name
file = urllib.request.urlopen(full_path_filename)