Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python OS symlink和.json.gz文件_Python_Json_Gzip - Fatal编程技术网

Python OS symlink和.json.gz文件

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") 然而,当我运行一个需要这个符号链接的脚本时,它失败了。使

我正在用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")
然而,当我运行一个需要这个符号链接的脚本时,它失败了。使用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为我指明了正确的方向,但你的解释带来了一个解决方案,我现在明白了!我还发现了
,非常有用!