Python OS symlink和.json.gz文件
我正在用Python创建一个符号链接。首先,我检查文件是否存在,然后创建符号链接Python OS symlink和.json.gz文件,python,json,gzip,Python,Json,Gzip,我正在用Python创建一个符号链接。首先,我检查文件是否存在,然后创建符号链接 import os project = 'test' if os.path.isfile("../../project/json/nodes1.json.gz"): os.symlink("../../project/json/nodes1.json.gz","../simulations/"+project+"/nodes1.json.gz") 然而,当我运行一个需要这个符号链接的脚本时,它失败了。使
import os
project = 'test'
if os.path.isfile("../../project/json/nodes1.json.gz"):
os.symlink("../../project/json/nodes1.json.gz","../simulations/"+project+"/nodes1.json.gz")
然而,当我运行一个需要这个符号链接的脚本时,它失败了。使用finder检查时,我得到操作无法完成,因为找不到“nodes1.json.gz”的原始项。
我确信我有正确的路径,它正确设置了符号链接。使用
.gz
文件是否有问题?除非为函数指定dir\u fd
参数,否则需要为src
和dst
参数指定绝对路径 符号链接路径相对于符号链接所在的目录。您的真实文件比当前目录高出两层,但您的符号链接只高出一层,然后是额外的一层。如果我为您的父目录命名,它将类似于
current directory aaa/bbb/ccc
real file aaa/project/json/nodes1.json.gz
symlink aaa/bbb/simulations/project/nodes1.json.gz
你的符号链接应该再深一层
../../../project/json/nodes1.json.gz
检查符号链接的一个好方法是进入保存该链接的目录,然后按照该目录查看哪里出了问题
td@mintyfresh ~/tmp/deleteme $ tree
.
└── aaa
├── bbb
│ ├── ccc
│ └── simulations
│ └── project
│ └── nodes1.json.gz -> ../../project/json/nodes1.json.gz
└── project
└── json
└── nodes1.json.gz
7 directories, 2 files
td@mintyfresh ~/tmp/deleteme $ cd aaa/bbb/simulations/project
td@mintyfresh ~/tmp/deleteme/aaa/bbb/simulations/project $ ls -l
total 0
lrwxrwxrwx 1 td td 36 Jun 16 12:06 nodes1.json.gz -> ../../project/json/nodes1.json.gz
td@mintyfresh ~/tmp/deleteme/aaa/bbb/simulations/project $ cd ..
td@mintyfresh ~/tmp/deleteme/aaa/bbb/simulations $ cd ..
td@mintyfresh ~/tmp/deleteme/aaa/bbb $ cd project
bash: cd: project: No such file or directory
啊!!我正在使用
2.7
,这似乎只适用于3
。我正在寻找解决方案。谢谢你的描述。Flowfree为我指明了正确的方向,但你的解释带来了一个解决方案,我现在明白了!我还发现了树
,非常有用!