python 多进程练习 调用 os.system命令

import sys
import getopt
import os
import multiprocessing

def list_all_file(path):
    """
    list all files of a directory
    :param path:
    :return:
    """
    file_list = []
    for (path, _, files) in os.walk(path):
        for filename in files:
            file_list.append(os.path.join(path, filename))
    return file_list

def process_file(filename, is_black):
    suffix = os.path.splitext(filename)[-1][1:]
    if suffix != "pcap":
        return

    if is_black:
        cmd = "python extract_tls_flow4.py -vr {} -o black/{}.txt  >logs/black/{}.log".format(filename, os.path.basename(filename), os.path.basename(filename))
    else:
        cmd = "python extract_tls_flow4.py -vr {} -o white/{}.txt  >logs/white/{}.log".format(filename, os.path.basename(filename), os.path.basename(filename))
    os.system(cmd)

def process_black_file(filename):
    process_file(filename, 1)

def process_white_file(filename):
    process_file(filename, 0)

def process_dir(sample_dir, is_black):
    file_list = list_all_file(sample_dir)

    process_num = 30
    pool = multiprocessing.Pool(processes=process_num)
    if is_black:
        pool.map(process_black_file, file_list)
    else:
        pool.map(process_white_file, file_list)

    pool.close()
    pool.join()
    print("End...........")

black_sample_dir = "/opt/data/samples/black_pcap"
white_sample_dir = "/opt/data/samples/white_pcap"

process_dir(black_sample_dir, 1)
process_dir(white_sample_dir, 0)

  

原文地址:https://www.cnblogs.com/bonelee/p/10409271.html

时间: 2024-08-29 23:07:11

python 多进程练习 调用 os.system命令的相关文章

python执行系统命令:os.system,os.popen,commands

写脚本的时候经常会直接执行系统命令. 一.最先使用的是os.system()命令. import os os.system("cat /etc/hosts") 但是吧,这个方法并不能取得输出和返回值的. 二.接着我就使用了os.popen()命令 import os output = os.popen("cat /etc/hosts") print output.read() 通过os.popen返回的是file read对象,因此要获取内容的话,直接可以outpu

python基础之使用os.system来执行系统命令

今天我们来尝试使用python 的os.system来执行系统命令 可以使用如下方法: import osprint os.system('ping www.baidu.com') 输出的结果是:64 bytes from 223.26.58.21: icmp_seq=0 ttl=245 time=36.798 ms64 bytes from 223.26.58.21: icmp_seq=1 ttl=244 time=37.561 ms64 bytes from 223.26.58.21: ic

python多进程(multiprocessing调用类函数)

#coding=utf-8 import os import multiprocessing from time import ctime, sleep from selenium import webdriver class testClass(object): def worker(self, interval, browser="Chrome", url="http://loginurl"): driver = eval("webdriver.%s(

在Windows系统下使用pycharm调用os.system("dir")为什么乱码

问题: 因为在pycharm中,将属性文件的默认编码设定为了UTF-8,而Windows中取出的dir信息为GBK编码形式.所以打印时出现乱码. 解决方案: 在以下设置处,将编码格式设定为GBK即可,只有设定project encoding才有效 原文地址:https://www.cnblogs.com/zhubincheng/p/12601985.html

Python调用外部程序——os.system()和subprocess.call()

通过os.system和subprocess.call()函数调用其他程序 预备知识:cmd中打开和关闭程序 cmd中打开程序 a.打开系统自带程序 系统自带的程序的路径一般都已加入环境变量之中,只需在cmd窗口中直接输入程序名称即可. 以notepad为例,直接在cmd窗口中输入notepad后回车即可打开. b.打开自己安装且没有加入环境变量的程序 以网易云音乐为例,在cmd窗口中需要输入完整的程序路径  "D:\Program Files (x86)\Netease\CloudMusic\

python调用linux的命令

有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的.那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法: 1. os 模块 1.1. os模块的exec方法族 python的exec系统方法同Unix的exec系统调用是一致的.这些方法适用于在子进程中调用外部程序的情况,因为外部程序会替换当前进程的代码,不会返回.( 这个看了点 help(os)  --> search "exec" 的相关介绍,但是没

python中os.system()的返回值

最近遇到os.system()执行系统命令的情况,上网搜集了一下资料,整理如下,以备不时之需,同时也希望能帮到某些人. 一.python中的 os.system(cmd)的返回值与linux命令返回值(具体参见本文附加内容)的关系 大家都习惯用os.systemv()函数执行linux命令,该函数的返回值十进制数(分别对应一个16位的二进制数).该函数的返回值与 linux命令返回值两者的转换关系为:该函数的返回值(十进制)转化成16二进制数,截取其高八位(如果低位数是0的情况下,有关操作系统的

python os.system()返回值判断

最近遇到os.system()执行系统命令的情况,上网搜集了一下资料,整理如下,以备不时之需,同时也希望能帮到某些人. 一.python中的 os.system(cmd)的返回值与linux命令返回值(具体参见本文附加内容)的关系 大家都习惯用os.systemv()函数执行linux命令,该函数的返回值十进制数(分别对应一个16位的二进制数).该函数的返回值与 linux命令返回值两者的转换关系为:该函数的返回值(十进制)转化成16二进制数,截取其高八位(如果低位数是0的情况下,有关操作系统的

python 之调用Linux shell命令及相关高级应用

最近根据老大要求,将数据进行同步备份,结合第三方提供的工具.第三方服务其实是有python demo的,本想研究下实际的python sdk搞个demo开发的,但是发现有些组建装起来确实头大,而且本公司线上的python版本也确实够低只能另想办法. 最终确定方案如下:利用第三方提供的相关管理工具(当然是Linux下的),通过python调用系统工具(本人对shell在这方面不是特别感冒,当然文本处理除外),然后将脚本输出重定向到日志文件中,方便检查文件上传成功或失败的具体情况处理. 那么就会设计