私は、フォルダの内容を私のためにテキストファイルに出力することができる2つの引数をとるpythonスクリプトを書いています別のプロセスに使用する私が持っているのスニペットは以下の通りです:Python:フォルダの内容をテキストファイルに入れようとしています:
#!/usr/bin/python
import cv2
import numpy as np
import random
import sys
import os
import fileinput
#Variables:
img_path= str(sys.argv[1])
file_path = str(sys.argv[2])
print img_path
print file_path
cmd = 'find ' + img_path + '/*.png | sed -e "s/^/\"/g;s/$/\"/g" >' + file_path + '/desc.txt'
print "command: ", cmd
#Generate desc.txt file:
os.system(cmd)
私は試してみて、私のコマンドラインから、私は次の出力を得ることを実行して、私はそれを修正する方法が分からないとき。
sh: 1: s/$//g: not found
は、私は新鮮なターミナルインスタンスで次のコマンドを実行して使用していますコマンドをテストし、それが正常にうまくいく:
images/*.png | sed -e "s/^/\"/g;s/$/\"/g" > desc.txt
私のスニペットがうまくいかない理由は誰にも見えますか?私はそれを実行すると、私は空のファイルを取得...
ありがとうございます!
os.systemは問題が、代わりにsubprocess.callを使用してみています。それは引数を使って外部コマンドを呼び出す方法をはるかに大きく制御できます。 それでは、なぜシェルコマンドを起動するのですか? os.walkを使用してPythonですべて保持することはできませんか? –
'fnmatch.filter()'や 'glob.glob( 'images/*。png')'と 'os.listdir()'を使うことができます。 – furas