我们正在使用一个代码存储库,它部署在Windows和Linux上 - 有时在不同的目录上.项目中的一个模块应该如何引用项目中的一个非Python资源(CSV文件等)?
如果我们做类似的事情:
thefile=open('test.csv')
Run Code Online (Sandbox Code Playgroud)
要么:
thefile=open('../somedirectory/test.csv')
Run Code Online (Sandbox Code Playgroud)
仅当脚本从一个特定目录或目录的子集运行时,它才会起作用.
我想做的是:
path=getBasePathOfProject()+'/somedirectory/test.csv'
thefile=open(path)
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?可能吗?
我想将参数传递给docker CMD.例如,如果内容Dockerfile是
FROM ubuntu:15.04
CMD ["/bin/bash", "-c", "cat", "$1"]
Run Code Online (Sandbox Code Playgroud)
然后我想运行如下:
docker build -t cat_a_file .
docker run -v `pwd`:/data cat_a_file /data/Dockerfile
Run Code Online (Sandbox Code Playgroud)
我想将内容Dockerfile打印到屏幕上.但相反,Docker认为这/data/Dockerfile是一个应该覆盖的脚本CMD,给出了错误
Error response from daemon: Cannot start container 7cfca4:
[8] System error: exec: "/data/Dockerfile": permission denied
Run Code Online (Sandbox Code Playgroud)
如何避免这种情况?