如何将Python列表转换为shell可读的字符串系列?

时间:2016-04-05 23:11:57

标签: python shell output

我在depends保存了这个shell脚本(由文件名$PATH调用):

#!/bin/bash
for i in "$@"
do
  depends=+("nodejs-$i")
done
echo $depends

和它设计的输入(即$@)是示例格式:

'flatten' 'once' 'is-file' 'multistream' 'piece-length' 'junk' 'xtend' 'bencode' 'readable-stream' 'run-parallel 'filestream' 'simple-sha1' 'minimist' 'block-stream2'

。所以我希望能够编写package.json文件中列出的依赖项,该文件包含在此Python脚本的DEP列表变量中(文件名为npm2.py):

import json
from sys import argv
print(argv[1])
from subprocess import call

with open("/home/fusion809/OBS/home:fusion809:arch_extra/nodejs-" + argv[1] + "/src/package/package.json") as json_file:
    json_data = json.load(json_file)
    deps = json_data["dependencies"]
    LEN=len(deps)
    print(LEN)
    i=0
    DEP=list()
    print(DEP)
    for key, value in deps.items():
        print(key)
        DEP.append(key)
        i = i+1
        print(i)
        #call(["cpobsn", key, argv[1]])
    print(DEP)
    call("depends", DEP) # returns errors as DEP is a list!

到一个新变量,比如DEPS,这样它就可以用作depends shell脚本的输入。如果它有帮助,那么我想要转换为前面显示的标准输出的当前DEP变量:

['flatten', 'once', 'is-file', 'multistream', 'piece-length', 'junk', 'xtend', 'bencode', 'readable-stream', 'run-parallel', 'filestream', 'simple-sha1', 'minimist', 'block-stream2']

因此,我在这里问我如何将Python列表转换为shell可读的空格分隔字符串集。

1 个答案:

答案 0 :(得分:1)

subprocess.call将其参数放在一个列表中。尝试:

library(lubridate)
two_dig_year_cnvt <- function(z, year=2017){
    y <- as.numeric(format(z, '%Y'))
    range <- 2017 - 2000
    year(z) <- ifelse(y >= 0 & y <= range, 2000 + y, 
                      ifelse(y > range & y <= 200, 1900 + y, y))
    z
}