【发布时间】:2017-07-28 12:31:47
【问题描述】:
我的 Python 脚本无法在以下脚本中解析 Linux 服务器上的相对路径:
import boto3
import os
conn = boto3.client('s3', region_name="eu-west-1", endpoint_url="https://example.com", config=Config(signature_version="s3", s3={'addressing_style': 'path'}))
conn.download_file('mytestbucket22', 'file.csv', os.path.join(os.getcwd(), 'static', 'filecache', 'file.csv'))
错误:
[Errno 2] No such file or directory: '/home/vcap/app/static/filecache/file.csv.D3e3D7aF'
但是,当我这样做时,它可以工作并将文件保存到我的脚本路径。
conn.download_file('mytestbucket22', 'file.csv', 'file.csv')
我的文件夹和文件结构如下:
--script.py
--static
----filecache
如何将文件保存到文件夹 filecache?谢谢
【问题讨论】:
-
尝试将当前路径作为字符串查找并添加子路径?
-
使用相对路径会出现什么错误?
-
static和static/filecache的权限是否正确? -
它只是说没有该路径的目录。权限正确。
-
当前工作目录不是你的脚本所在的目录,当你的代码被执行时,它甚至可能不是你启动脚本的那个目录(如果在你之前执行的任何其他代码发出
chgdir())。从不依赖 cwd,从不使用相对路径,始终确保使用绝对路径。
标签: python linux relative-path boto3