免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8486 | 回复: 13
打印 上一主题 下一主题

python脚本的自动化。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-12 15:35 |只看该作者 |倒序浏览
5可用积分
现在我想实现linux的shell脚本的功能,比如:

a.exe << EOF
cmd1
cmd2
quit
EOF

a.exe一直等到输入命令quit才退出。

cmd1为a.exe的第一个命令,执行完后等待,执行完cmd2后继续等待,直到quit命令,才退出a.exe。

这种功能python能实现吗?

请python高手不吝指点,python新人急切等待。。

论坛徽章:
0
2 [报告]
发表于 2008-12-12 15:44 |只看该作者
while判断下就行了

论坛徽章:
0
3 [报告]
发表于 2008-12-12 15:54 |只看该作者
原帖由 xiaoyu9805119 于 2008-12-12 15:44 发表
while判断下就行了



谢谢解答。我刚才没有说太清楚。
我的代码是死的,比如,我有一个任务在晚上2点执行,用a.exe来实现备份文件,要分三步,
第一步创文件夹,
第二步,备份文件,
第三步,退出。

这三个命令在运行a.exe时候顺序执行,执行过程中不退出,执行过程如下:

a.exe
>mkdir
>bk file
>quit

界面应该是这样子,命令可以从文件读取,也可以在程序中硬编码。没有人工介入,要自动完成。
linux的shell可以用上面的命令来实现。不知道python有没有类似功能。
请高人指点。

[ 本帖最后由 unique_man 于 2008-12-12 15:55 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-12-12 16:09 |只看该作者
楼主是不是想问怎么调用系统命令?
system,popen都可以

可以把文件都读进来,然后循环跑下每行的内容
执行过程都是顺序的,前面没完成,后面的也执行不到哦。不需要循环。一行一行的就行了。

论坛徽章:
0
5 [报告]
发表于 2008-12-12 16:19 |只看该作者
不是。
我运行a.exe后,a.exe的状态为
a.exe
>
a.exe等待输入命令,直到输入命令quit才退出。但是我的a.exe不可以在文件中写死,比如:
a.exe a
a.exe b
a.exe quit
我的a.exe不能这样带参数执行。linux的shell中可以用上面的那种流来实现。python中没有这种流的实现吗?

论坛徽章:
0
6 [报告]
发表于 2008-12-12 16:24 |只看该作者
你给个shell写的例子给我瞅瞅,我还是没明白你的意思

论坛徽章:
0
7 [报告]
发表于 2008-12-12 16:57 |只看该作者
#!/bin/bash

macc >> q.log 2>&1 << EOF
create -name abc
delete -name abc
quit
EOF

echo "the result is : "$?
我的脚本就是这样,macc是一个exe,下面的create和delete是两个命令,执行完后再执行quit命令。
只要运行这个脚本,三条命令就执行了。

论坛徽章:
0
8 [报告]
发表于 2008-12-12 17:50 |只看该作者
我现在解决了,就是写一个临时文件,呵呵。
现在还没有发现更好的办法。

论坛徽章:
1
天秤座
日期:2014-04-27 07:42:20
9 [报告]
发表于 2008-12-13 10:06 |只看该作者
定时+模拟键盘输入

论坛徽章:
0
10 [报告]
发表于 2008-12-13 11:40 |只看该作者
其实你说的使用环境还不够清楚,所以大家都在猜
那我也猜一下:
你的备份程序是不能改的,可能是c/c++的程序,不是python的程序,如果是的话那就容易了,你可以在里面用raw_input或读sys.stdin,或者你可以直接改一下输入的方式,那就更方便了
你是要在一个python脚本里调用这个备份程序,如果不是的话,那我还是建议你直接用bash的方法,不然绕了一圈用python,还没什么好处。
如果是以上的假设,那么你可以用popen,好像在os模块里,记不清了。应该有好几个popen,其中有一个可以获得新开程序的stdin的,你就依次对这个stdin写你的命令就好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP