循环需要引用笔记本中终端返回的列表

时间:2016-07-30 16:23:31

标签: python ipython

我有一个包含3个文件夹X,Y和Z的文件夹结构。每个文件夹包含3个文件X1.csv,X2.csv,X3.csv,Y1.csv,Y2.csv,Y3.csv,Z1。 csv,Z2.csv,Z3.csv。

在我的jupyter笔记本中,我可以执行以下操作:

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

这将重现以下内容:

!ls data/X

我想更改f,以便它使用X而不是硬编码的{{1}},但如果我将数据/ X更改为字符串' data /&# 39;并将f连接到它的末尾,然后我不会返回任何内容。

注意

我可以导入操作系统,然后使用listdir,但我想知道上述情况是否可行。

1 个答案:

答案 0 :(得分:3)

只是不要使用神奇的笔记本命令来执行can be easily done with pure python的操作。魔术笔记本命令应该用于快速黑客攻击和支持非python功能,而不是实际作为代码的一部分。

但是,如果由于奇怪的原因你真的必须,你需要用bash方式引用你的变量($variable instaed of variable

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