我有一个python脚本将json文件转换为csv。它目前转换所有文件,但我希望它只在那些尚未转换为csv的json文件上运行。所有都在同一目录中。如何修改我的代码:
const alldata = listA.map(u => listB.filter(oo => u.name === oo.name));
答案 0 :(得分:1)
假设您的脚本为名为basename.csv
basename.json
for f in *.json; do
test -e "${f%.json}.csv" && continue
python ~/bin/convert.py "$f" "-fcsv"
done
shell参数展开$(variable%pattern}
生成variable
的值,并删除了球pattern
上的任何匹配项。
答案 1 :(得分:-1)
这会利用find
GNU-util并使用python
其余的部分。由于您正在运行python脚本,我假设python是
安装在系统上。
以下完整命令:
find . \( -type f -regextype posix-extended -regex '.*json' \) - exec python -c "import sys; import os; filename, file_extension = os.path.splittext(sys.argv[1]); if not os.path.isfile(filename + '.csv') : os.system('python ~/bin/convert ' + filename + file_extension + ' -fcsv')" {}
find . \( -type f -regextype posix-extended -regex '.*json' \)
filename, file_extension = os.path.splittext(sys.argv[1]);
if not os.path.isfile(filename+'.csv'): os.system('python ~/bin/convert.py ' + filename+file_extension + ' -fcsv')"
您可以将整个脚本放入bash脚本中,并使用\
将其分成多行,如下所示:How can I split a shell command over multiple lines when using an IF statement?