我有一个日期命令来显示小时分钟和秒,类似于
date -u +"%H%M%S" | cut -c 1-6
它会显示一些内容,例如155344
。我需要输出总是四舍五入到下限,所以对于上面的例子我需要155340
。
即使上面的命令产生155349
,我的输出也应该显示最低限度155340
而不是155350
。
等待开悟。
答案 0 :(得分:2)
由于您基本上想用0
替换字符串的最后一个字符,因此您可以使用shell parameter expansion执行此操作:
$ timestamp=$(date -u +"%H%M%S")
$ echo "$timestamp"
161333
$ echo "${timestamp%?}0"
161330
您也不需要cut
,因为date
命令的输出总是应该是六个字符长。
答案 1 :(得分:0)
import os
import subprocess
out_dir = os.path.join(os.getcwd(), 'qr')
if not os.path.exists(out_dir):
os.makedirs(out_dir)
out_file = os.path.join(out_dir, 'datamatrix.png')
cmd1 = ['zint' '-o', out_file, '-b', '20', '--notext', '-d', '"data_to_encode_goes_here"']
rc = subprocess.call(cmd1)
这也有效,但修复它是一个阴暗的黑客。
答案 2 :(得分:-1)
取输出,整数除以10,然后乘以10,所以如果你将该值存储为output=$(( $output / 10 ))
output=$(( $output * 10 ))
:
$(())
$(( $(date -u +"%H%M%S" | cut -c 1-6) / 10 * 10 ))
是bash中的整数运算,并且是截断而不是舍入。
这可以写成一行
python manage.py collectstatic