【发布时间】:2017-06-12 01:58:16
【问题描述】:
我正在编写一个基于正则表达式查找输入文件的 shell 脚本。然后将这些输入文件作为参数传递给 python 脚本。我的代码如下:
file_pattern=*test[0-9]*
files=$(ls -f $file_pattern)
python my_script.py $files
但是,我发现 $files 不会将文件名作为用逗号分隔的字符串传递。我目前的解决方法是手动列出所有所需的输入文件,如下所示:
files=(test0.csv test1.csv test2.csv)
这会将“test0.csv,test1.csv,test2.csv”作为逗号分隔的字符串传递给python(这是我想要的,因为我可以通过分隔符将字符串拆分为列表),但这可以是对许多文件来说很乏味。所有输入文件都将遵循相同的命名约定,因此在我看来,正则表达式是最好的选择。任何人都知道为什么/如何用正则表达式解决这个问题?谢谢!
【问题讨论】:
-
那不是正则表达式;这是一个模式。您从哪里得到数组生成逗号分隔字符串的想法?
-
抱歉术语混淆。当我使用 sys.argv[1] 访问我的 python 脚本中的命令行参数时,结果是一个逗号分隔的字符串。
标签: python regex shell file-io