2016-07-30 15 views
2

私は3つのフォルダX、Y、Zを持つフォルダ構造を持っています。これらの各フォルダには、X1.csv、X2.csv、X3.csv、Y1.csv、 Y2.csv、Y3.csv、Z1.csv、Z2.csv、Z3.csv。ループはノートブックの端末から返された参照リストを参照する必要があります

私は次の操作を行うことができ、私のjupyterノートで

folders = ['X','Y','Z'] 
for f in folders: 
    a = !ls data/X 
    print(a) 

これは、次のことをretruns:

['X1.csv', 'X2.csv', 'X3.csv'] 
['X1.csv', 'X2.csv', 'X3.csv'] 
['X1.csv', 'X2.csv', 'X3.csv'] 

私はそれがf代わりにハードコーディングされたXを使用するように!ls data/Xを変更したいですしかし、私がdata/Xを文字列 'data /'に変更し、fをその末尾に連結すると、何も返されません。


ノート

私はOSをインポートしてLISTDIRを使用しますが、上記が可能である場合、私は思ったんだけど可能性があります。

答えて

3

can be easily done with pure pythonを実行するためにノートブックの魔法のコマンドを使用しないでください。マジックノートのコマンドは、実際にコードの一部として配置されるのではなく、素早くハックして非Pythonの機能をサポートするために使用されるはずです。奇妙な理由のためにあなたが本当ににしている場合

しかし、あなたは(variable$variable instaed)

folders = ['X','Y','Z'] 
for f in folders: 
    a = !ls data/$f 
    print(a) 
のような方はbashを使用して変数を参照する必要があります
関連する問題