2016-04-22 6 views
1

私はPythonでUnix findコマンドを使用しようとしており、pwdを入力することができないので、`pwd`もうまくいきませんでした。UNIXを使用して `pwd`を見つけよう

import commands 
import os 

f = raw_input('Enter name of the file: ') 
fh = open(f, 'r') 

prevdir = os.getcwd() 
files = fh.readlines() 

for line in files: 
    os.chdir(line) 
    print commands.getoutput('find `pwd` -name "*.txt"') 
    # print commands.getoutput('find \`pwd\` -name "*.txt"') 
+0

あなたcommands.getoutputラインは私のために動作します。あなたはPythonシェルで試しましたか? – trans1st0r

+0

他の人たちが示唆しているように、あなたがやろうとしていることをPythonで行う方法はほとんどありません。 'os.listdir'、' os.walk'、 'glob'モジュールなどですが、もしあなたがこのアプローチにコミットしていれば、' commands.getoutput( 'find "%s" -name "* .txt "'%os.getcwd())'。あなたが 'getoutput'に渡して、それが何をしているかを知っている文字列を' print'してください。 – jedwards

+0

あなたが儀式です、それはPythonのshell.Iでの作業はtcshの中でこのプログラムを実行していません。それに関係があるかどうかは分かりません。 – Deep

答えて

1

ちょうど代わりとしてそれを出してください。

import glob 
for line in files: 
    print(glob.glob(line+"*.txt")) 
:(そうでないものは、文字列に追加される必要があるであろう、と仮定ライン /で終わる)を使用すると、1つのディレクトリのみ(。つまり、再帰的ではない)私はむしろ globが使用しようとして検索すると仮定すると、

再帰的な場合(Python3.5>):

import glob 
for line in files: 
    print(glob.glob(line+"**/*.txt"),recursive=True) 
+0

これは私の場合とは異なり、プラットフォームに依存しないソリューションであるため、さらに優れています。私のものは* Nixシステム上でのみ実行され、あなたのWindows上で動作します。 +1。 –

関連する問題