在不同的位置应用不同的命令

2024-05-06 15:29:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Ubuntu工作。 我有一堆命令(比如10个命令,如cmd1、cmd2、cmd3…………cmd10)

我想写一个python脚本,可以实现以下功能:

它应该遍历目录结构并应用命令 在特定的目录路径上。 我已经知道位置和命令了。你知道吗

下面是一个例子,我希望脚本如何操作。你知道吗

/local/mnt/myspace/sample1$ cmd1
/local/mnt/myspace/sample2$ cmd2
/local/mnt/myspace$ cmd3
/local/mnt$cmd4
/local/mnt/myspace/sample9$ cmd 8
/local/mnt/myspace/sample3$ cmd10

有人能帮忙吗。你知道吗


Tags: 命令路径功能目录脚本ubuntulocal结构
3条回答

只需使用^{}。你知道吗

比如:

import os
from itertools import izip
paths = ('/local/mnt/myspace/sample1', '../sample2', 
         '../', '../', 'myspace/sample9/', '../sample3']
commands = (func1, func2, func3, func4, func5, func6)
for path, command in izip(paths, commands):
      os.chdir(path)
      command()

把每个命令放在一个函数里。你知道吗

编辑:我认为您希望在不同的目录中运行不同的Python命令。如果是不同的外部程序,请使用:

commands = (['cmd1', 'arg1'], ['cmd2', 'arg2'], ...)
for path, command in izip(paths, commands):
      os.chdir(path)
      subprocess.call(command)

没有理由使用Popenwait,因为这是call的具体用途。你知道吗

可能是这样的:

import subprocess
import os
jobs=[
    ('/local/mnt/myspace/sample1', 'cmd1'),
    ('/local/mnt/myspace/sample2', 'cmd2'),
    ('/local/mnt/myspace', 'cmd3'),
    ('/local/mnt', 'cmd4'),
    ('/local/mnt/myspace/sample9', 'cmd', '8'),
    ('/local/mnt/myspace/sample3', 'cmd10'),
]

for job in jobs:
    print "In", job[0], "executing", job[1:]
    os.chdir(job[0])
    subprocess.Popen(job[1:]).wait()

(只是一个快速镜头)

看看我是如何“滥用”cmd8的明显错误来显示如何调用带有参数的程序的。你知道吗

import os

pathCommands = {r'C:\Windows':'dir', r'C:\test':'cd..' }

for path, command in pathCommands.items():
    os.chdir(path)
    os.system(command)

相关问题 更多 >