だから私はラズベリーパイに展開されるコードを書いています。ラズベリー pi の計算上の制限と、この特定の用途 (画像のキャプチャと処理) に必要な一連の手順のため、可能な限り for ループの代わりにリスト内包表記を使用するのが最善であると考えました。ファイル(名前+パス)の配列を作成するステートメントを作成できました。
self.dark_file_names=np.array([(os.path.join(self.dark_frames_path, line.strip("\n")) for root, dirs, files in os.walk(self.dark_frames_path) for line in files if) line.endswith(".npy\n"))])
ただし、ipythonでこれのバリエーションを試しました:
dark_file_names=np.array([(os.path.join(dark_frames_path, line.strip("\n"))) ルート、ディレクトリ、os.walk(dark_frames_path) 内のファイルの場合、line.endswith(". py\n"))])
これが出力です:
array([<generator object <genexpr> at 0x7f14d4412888>], dtype=object)
dark_frames_path は、大量の python ファイルを含むローカル ディレクトリです。
残念ながら、これは私が望んでいたものではありません。同様の結果で、通常のリストでも試しました。私のステートメントをリスト内包表記ではなくジェネレーター式として解釈するのはなぜですか?
また、ipythonでこれらのコマンドを使用してsshを介して実行していたときに、これが機能していました。
stdin, stdout, stderr= ssh.exec_command('ls')
l=[line.strip('\n') for line in stdout if line.strip('\n').endswith(".py")]
ssh は paramiko.SSHClient() インスタンスです。