同等だと思った 2 つのコードがあります。リストの理解に関して私が見逃している理論的根拠を誰かが説明できますか?
次のコードをファイルに書き込むと、最後のサブフォルダーの内容のみが生成されます。
for root, directories, files in os.walk(directory):
filenames = [os.path.join(root, filename) for filename in files]
ただし、次のコードはまさに私が望んでいることを実行します (ルート ディレクトリとそのサブディレクトリのすべての内容を書き込みます)。
allfiles = [os.path.join(root,f) for root,dirs,files in os.walk(directory) for f in files]
だから、彼らは私と同じように見えますが、明らかにそうではありません. 誰かが私を正しい方向に向けることができますか?