我的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?感谢
答案 0 :(得分:4)
conn.download_file('mytestbucket22', 'file.csv', os.path.join(os.getcwd(), 'static', 'filecache', 'file.csv'))
上面使用的模块,常量和函数的文档参考:
os
和os.path
模块。__file__
常数os.path.realpath(path)
(返回“指定文件名的规范路径,消除路径中遇到的任何符号链接”)os.path.dirname(path)
(返回“路径名path
的目录名”)os.getcwd()
(返回“表示当前工作目录的字符串”)os.chdir(path)
(“将当前工作目录更改为path
”)答案 1 :(得分:0)
我会用
conn.download_file('mytestbucket22', 'file.csv', os.path.join(os.path.dirname(sys.argv[0]), 'static', 'filecache', 'file.csv'))