在ipython(0.10.2)中,我想运行bash shell样式(或glob.glob)扩展.我想做类似这样的事情,并且如果我在bash中那样扩展出来的话.这可能吗?
filenames = !ls *.sbet
run sbet.py $filenames
# fails because filenames is a list
# or the simpler case:
run sbet.py *.sbet
# failes with "*.sbet" being directly passed in without being expanded.
Run Code Online (Sandbox Code Playgroud)
建议?谢谢!
返回filenames = !ls *.sbet是一个特殊的列表,有一些额外的属性:
filenames.l - 列表filenames.s - 以空格分隔的字符串filenames.n - 换行符分隔的字符串做filenames?更多的信息在IPython中.
所以要传递args来运行,你需要filenames.s:
filenames = !ls *.sbet
run sbet.py $filenames.s
Run Code Online (Sandbox Code Playgroud)
如果你有一个常规列表,那么在传递给run之前你需要自己把它变成一个字符串:
filenames = glob.glob('*.sbet')
filenames_str = ' '.join(filenames) # you will need to add quotes if you allow spaces in filenames
run sbet.py $filenames_str
Run Code Online (Sandbox Code Playgroud)
传递给if 时,您可能会自动扩展文件globs 的功能请求.%runrun foo.py *.sbet
| 归档时间: |
|
| 查看次数: |
631 次 |
| 最近记录: |