python批处理_如何使用python写批处理

不会用bat写批处理,bat命令太复杂,怎么办?可以使用python替代bat写批处理

1. 为什么需要批处理

我手头上有一个影像波段融合的控制台小程序Fusion.exe,需要打开cmd,然后需要在cmd中输入

融合程序路径 影像宽度w 影像高度h 波段数n 影像1路径 影像2路径……影像n路径 融合后影像路径

1

如果只需要波段融合成一副影像,那直接在控制台调用程序并输入参数即可。但这次需要将236幅每6个波段的影像进行波段融合,手动一次次来的话,我选择狗带。 要是把在cmd输入的参数换成变量就好了,我们可以通过for循环和变量可以达到让cmd重复执行相似的命令。

2. 使用python进行批处理

我们这里主要运用了os.system()函数。os模块中的system()函数可以方便地运行其他程序或者脚本。相当于在Windows的cmd窗口中输入的命令。 主要需要4个步骤:

1. 导入os模块

import os

1

2. 输入要执行的命令

command = 'ipconfig' #要执行的命令(这里以命令ipconfig为例),相当于直接在windows的cmd窗口中输入的命令。

1

3. 调用os.system()函数

os.system(command) #调用os.system()函数,参数为上面定义的command.

1

4. for循环1-3 步骤 将代码保存为 自定义文件名.py ,在cmd执行下面命令。

python 自定义文件名.py #注意:安装python时,需要设置环境变量

1

3. 一个批处理的例子

下面我将叙述一个例子并附上代码来详细说明如何使用python进行批处理

3.1 例子的背景

有一个带参数的图像波段融合程序,该程序需要在控制台运行。

有6个文件夹,分别保存了236张影像的6个波段。影像文件的命名方式为TTC0*.raw、TTC1*.raw、TTC2*.raw、TTC3*.raw、TTC4*.raw、TTC5*.raw分别表示1-6波段的影像。

3.2 方法和代码

思想:使用python遍历文件保存为变量,command中使用变量,for循环调用os.system(command)。

遍历第一个文件夹中*.raw格式文件,将文件名列表赋给一个变量。

根据上述变量和.raw格式的命名规则生成其他5个波段影像的文件访问路径。

定义command变量

调用os.system(command)

重复执行1-4步骤,for循环。

import os

filepath = ‘D:\\第一波段所在的文件夹\\0\\20m’ #定义第一波段的路径

resultpath = ‘D:\\Fusion’ #定义融合后影像存储路径

filelist = os.listdir(filepath) #遍历文件夹所有的文件

file_raw_list = filter(lambda filename:filename[-4:] == ‘.raw’, filelist) #筛选出格式为.raw的文件

for i in range(len(file_raw_list)): #循环遍历第一波段文件夹中raw格式文件,生成其他波段影像的路径

fileon0 = file_raw_list[i]

file_path = [] #6波段影像的路径

#根据命名规则和第一波段文件名得到6个波段影像的文件名和路径,存储在表file_path中

for i in range(6):

fileonname = fileon0[0:3] + str(i) + fileon0[4:]#各波段影像文件名,将文件名中的0替换为0-5

fileonpath = filepath[0:-5] + str(i) + filepath[-4:]#各波段影像文件夹路径,将文件夹中的0替换为0-5

file_path.append(fileonpath+’\\’+fileonname)#生成6个波段影像的访问路径,例:‘D:\\第一波段所在的文件夹\\1\\20m\\TTC1*(图像标号).raw’

#输入要执行的命令(按照控制台程序的格式输入参数),相当于直接在windows的cmd窗口中输入的命令

command = r’D:\控制台程序所在的文件夹\Fusion.exe’ + ‘ ‘ + file_path[1] + ‘ ‘ + file_path[2] + ‘ ‘ + file_path[3] + ‘ ‘ + file_path[4] + ‘ ‘ \

+ file_path[0] + ‘ ‘ + file_path[5] + ‘ ‘+ resultpath+’\\’+ fileon0[0:-4]+’.tiff’

os.system(command) #最后调用os.system()函数

注意:文件夹的名字最好不要带中文。

写得太啰嗦了,又不在重点上,抛砖引玉。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值