難しいことはできませんが、私は精神的なブロックを抱えています。
難しいことはできませんが、私は精神的なブロックを抱えています。
回答:
一方通行:
import os
os.listdir("/home/username/www/")
別の方法:
glob.glob("/home/username/www/*")
上記のglob.glob
方法では、隠しファイルはリストされません。
私が最初にこの質問に最初に回答してから、pathlibがPythonに追加されました。ディレクトリをリストするための私の好ましい方法は、通常iterdir
、Path
オブジェクトに対するメソッドを含みます:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
['c:\\users']
glob.glob(r'c:\users\*')
(globは実際にはディレクトリをリストしませんが、アスタリスクなどを展開して同様のタスクを実行します)。
glob.glob
またはそれos.listdir
を行います。
import glob
ENTER glob.glob(r'c:\users')
ENTERは戻るよう['c:\\users']
です。何故ですか?glob.globを使用したいのは、他のユーザーが指摘したように、隠しファイルも無視して、ディレクトリの内容を返すと考えられるためです。これは重要。
glob
:glob.glob(r'c:\users\*')
Python 3.5以降では、を使用できますos.scandir
。
違いは、名前ではなくファイルエントリを返すことです。Windowsのような一部のOSでは、それos.path.isdir/file
がファイルかどうかを知る必要がないことを意味します。これはstat
、Windowsでdirをスキャンするときにすでに行われているため、CPU時間を節約できます。
ディレクトリをリストしてmax_value
バイトよりも大きいファイルを出力する例:
for dentry in os.scandir("/path/to/dir"):
if dentry.stat().st_size > max_value:
print("{} is biiiig".format(dentry.name))
以下のコードは、ディレクトリとディレクトリ内のファイルをリストします。もう1つはos.walkです。
def print_directory_contents(sPath):
import os
for sChild in os.listdir(sPath):
sChildPath = os.path.join(sPath,sChild)
if os.path.isdir(sChildPath):
print_directory_contents(sChildPath)
else:
print(sChildPath)
.XYZ
Unixファイルシステムコンテキスト内のファイルを意味すると思います)を一覧表示しますglob.glob("/home/username/www/.*")
か?