サイズのあるメールファイルとフォルダリスト?


0

私はPythonスクリプトを介して私に電子メールで送られたすべてのファイルとフォルダのリストを取得しようとしています(第1レベルまで、つまり現在のディレクトリにあるサイズのファイルとフォルダ名)。スクリプトは機能しましたが、以下のようにlsコマンドを使用すると、ファイルサイズのみが送信され、フォルダーサイズは送信されません。

p=subprocess.Popen(['ls', '-1ahs', '/media/ExternalHd/myfolder'], stdout=subprocess.PIPE)
output = p.stdout.read()

1
du代わりにコマンドを試してくださいls
ペドロロマーノ

@PedroRomanoはそれをしましたが、フォルダーのみをリストし、ファイルサイズをリストしませんか?たぶん、ファイルやフォルダのサイズをリストするデュの使用に向けたヒントは...役立つだろう
DeepeshAgarwal

1
試しましたdu -s *か?
ペドロロマーノ

@PedroRomano using du -sh /media/ExternalHd/myfolder/*は端末で動作しますがp=subprocess.Popen(['du', '-sh', '/media/ExternalHd/myfolder/*'], stdout=subprocess.PIPE)、Pythonスクリプトで使用するとエラーが表示されますdu: cannot access /media/ExternalHd/myfolder/*: No such file or directory
DeepeshAgarwal

回答:


1

「*」を展開するにはシェルが必要です。Popenはシェルを使用しません。Popenを本当に使いたい場合は、

p=subprocess.Popen(['sh', '-c', 'du', '-sh', '/media/ExternalHd/myfolder/*'], stdout=subprocess.PIPE)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.