【编程】shell和python实现:如何做到让一个程序每1秒去做一件事情

10 篇文章 0 订阅

目录

1.实现shell编程实现

2 python编程实现


使用while循环,每隔一秒钟执行一次

sleep 1 ==》暂停1秒钟

1.实现shell编程实现

【具体】如何实现每秒钟新建一个文件夹,文件夹的名字里包含时间,精确到秒

        文件夹新建的路径在/root/lianxi/test4

        文件夹的名字里必须包含lihua

        新建文件夹的数量都需要记录到/root/lianxi/test4/num.log里

        脚本的名字create_dir_v2.sh存放在/root/lianxi

[root@localhost lianxi]# vim create_dir_v2.sh
[root@localhost lianxi]# cat create_dir_v2.sh
#!/bin/bash

#新建test目录
mkdir -p /root/lianxi/test
while true:
do
        mkdir /root/lianxi/test/lihua$(date +%Y%m%d%H%M%S)
        sleep 1 #暂停1秒
done
[root@localhost lianxi]# bash create_dir_v2.sh
#希望得到输出
[root@localhost lianxi]# vim create_dir_v2.sh
[root@localhost lianxi]# cat create_dir_v2.sh
#!/bin/bash

#新建test目录
mkdir -p /root/lianxi/test
#num变量的初始值
num=1
while true:
do
        mkdir /root/lianxi/test/lihua$(date +%Y%m%d%H%M%S)
        sleep 1 #暂停1秒
        echo $((num++))  #num++等同于num=num+1
done
[root@localhost lianxi]# bash create_dir_v2.sh
1
2
3
4
5
^C
#最终版本
[root@localhost lianxi]# vim create_dir_v2.sh
[root@localhost lianxi]# cat create_dir_v2.sh
#!/bin/bash

#新建test目录
mkdir -p /root/lianxi/test
#num变量的初始值
num=1
while true:
do
        mkdir /root/lianxi/test/lihua$(date +%Y%m%d%H%M%S)
        sleep 1 #暂停1秒
        #记录已经创建了多少个文件夹
        echo $((num++)) >/root/lianxi/test/num.log  #num++等同于num=num+1
done
[root@localhost lianxi]# bash create_dir_v2.sh &
[1] 12531
[root@localhost lianxi]# jobs
[1]+  运行中               bash create_dir_v2.sh &

【复制标签查看效果】

[root@localhost test]# ls
lihua20220317201753  lihua20220317201755
lihua20220317201754  lihua20220317201756
[root@localhost test]# ls
lihua20220317201753  lihua20220317201755  lihua20220317201757
lihua20220317201754  lihua20220317201756
[root@localhost test]# ls
lihua20220317201753  lihua20220317201755  lihua20220317201757
lihua20220317201754  lihua20220317201756  lihua20220317201758
#最终版本的输出
[root@localhost test]# ls
lihua20220317203112  lihua20220317203118  lihua20220317203124
lihua20220317203113  lihua20220317203119  lihua20220317203125
lihua20220317203114  lihua20220317203120  lihua20220317203126
lihua20220317203115  lihua20220317203121  num.log
lihua20220317203116  lihua20220317203122
lihua20220317203117  lihua20220317203123
[root@localhost test]# cat num.log
18

2 python编程实现

【具体】如何实现每秒钟新建一个文件夹,文件夹的名字里包含时间,精确到秒

        文件夹新建的路径在/root/lianxi/test4

        文件夹的名字里必须包含lihua

        新建文件夹的数量都需要记录到/root/lianxi/test4/num.log里

        脚本的名字create_dir_v4.py存放在/root/lianxi

【需求分析】

  • python里去新建一个文件夹 ==》库:os或subprocess

os:operating system 操作系统。对操作系统进行操作的库:新建文件和文件夹,复制、删除等操作。

subprocess库:用来执行Linux命令

  • python如何得到当前的时间 ==》库:datetime
  • python里实现间隔1秒 ==》库:time
  • python里文件IO ==》write()

【功能了解】

[root@localhost sanchuang]# python3
>>> import os
>>> os.mkdir("liuxiang")
>>> os.getcwd()
'/root/lianxi/sanchuang'
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2022, 3, 21, 18, 22, 17, 759731)
>>> ctime = datetime.datetime.now()
#按照某种格式输出
>>> ctime.__format__('%Y%m%d%H%M%S')
'20220321182233'
>>> import time
#暂停一秒
>>> time.sleep(1)
#打开文件,并写入,w为覆盖写(清空之前的内容)
>>> f = open("num.log", "w")
>>> num = 10
# 写入并换行
>>> f.write(str(num)+"\n")
3
#关闭文件
>>> f.close()

【脚本】

[root@localhost sanchuang]# cat create_dir_v4.py
#!/usr/bin/python3

# 导入库
import os
import time
import datetime

# 判断/root/lianxi/test4文件夹是否存在
if not os.path.exists("/root/lianxi/test4"):
    #如果不存在就新建文件夹
    os.mkdir("/root/lianxi/test4")

# 切换路径到/root/lianxi/test4
os.chdir("/root/lianxi/test4")
num = 0
# 每一秒新建一个文件夹
while True:
    # 获得当前时间
    ctime = datetime.datetime.now().__format__("%Y%m%d%H%M%S")
    # 拼接文件名 sanchuang+时间
    filename = f"sanchuang{ctime}"
    # 创建文件夹
    os.mkdir(filename)
    # 暂停一秒
    time.sleep(1)
    # 统计新建文件夹的数量
    num = num + 1
    # 写到文件里/root/lianxi/test4
    with open("/root/lianxi/test4/num.log", "w") as f:
        f.write(f"{num}\n")

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值