os.listdir
を介してリストするディレクトリを指定しながら、raw_input
を介して出力ディレクトリのみにpythonをもたらすにはどうすればよいですか?
私が持っているもの:
file_to_search = raw_input("which file to search?\n>")
dirlist=[]
for filename in os.listdir(file_to_search):
if os.path.isdir(filename) == True:
dirlist.append(filename)
print dirlist
現在の作業ディレクトリを(raw_input
経由で)入力すると、これは実際に機能します。ただし、他に何かを入力すると、リストは空になります。私はこの問題を分割統治しようとしましたが、個々にすべてのコード部分が意図したとおりに機能します。
os.listdir
はファイル/ディレクトリのnamesのみを返すため、現在のディレクトリで実行していない限り、オブジェクトは見つかりません。
それが機能するためのフルパスを計算するには、スキャンしたディレクトリにjoin
する必要があります。
for filename in os.listdir(file_to_search):
if os.path.isdir(os.path.join(file_to_search,filename)):
dirlist.append(filename)
リスト内包バージョンに注意してください。
dirlist = [filename for filename in os.listdir(file_to_search) if os.path.isdir(os.path.join(file_to_search,filename))]