split -l 5000 $1 ${name}_xml
时间: 2024-04-28 19:19:13 浏览: 46
这是一个Linux命令,用于将文件拆分成多个小文件。其中,-l选项指定每个小文件的行数(这里是5000行),$1是要拆分的原始文件名,${name}_xml是新文件的命名格式,其中${name}是一个变量,表示原始文件名去掉后缀的部分。拆分后的小文件会按照${name}_xml.aa,${name}_xml.ab,${name}_xml.ac等格式命名。例如,如果原始文件名为original.txt,拆分后的小文件名就会是original_xml.aa,original_xml.ab等。
相关问题
翻译代码 img_names = os.listdir(img_path) # 以列表的形式获取文件夹中的所有文件的名字和格式(例如:0.jpg) print(img_names) for img_name in img_names: img = os.path.join(img_path, img_name) # 将文件的绝对路径与每个文件名字进行拼接,以获取该文件 img = cv2.imread(img) # 读取该文件(图片) xml_name = img_name.split('.')[0] # split()分割文件路径,取分割后的第一个元素 xml = os.path.join(xml_path, xml_name + '.xml') # 拼接也可以直接使用+号
这段代码的功能是获取指定文件夹中所有文件的名字和格式,然后依次读取每个文件并进行处理。具体实现步骤如下:
1. 使用 `os.listdir()` 方法获取指定文件夹中所有文件的名字和格式,并以列表的形式返回。
2. 通过遍历列表中的每个文件名字,使用 `os.path.join()` 方法将文件的绝对路径与每个文件名字进行拼接,从而获取该文件的完整路径。
3. 使用 OpenCV 库中的 `cv2.imread()` 方法读取该文件(图片)。
4. 使用 `split()` 方法对文件名字进行分割,获取文件名字中的数字部分作为 XML 文件名字(例如:0.jpg 对应的 XML 文件名字为 0.xml)。
5. 使用 `os.path.join()` 方法将 XML 文件夹路径与 XML 文件名字进行拼接,从而获取 XML 文件的完整路径。
整个过程中,使用了 `os` 和 `cv2` 两个 Python 库来实现文件操作和图像处理。
import re import os import json masscan_path = "D:/0.脚本小子/Tools/masscan/masscan.exe" masscan_parser_path = "../Tools/Masscan-to-CSV/masscan_xml_parser.py" nmap_parser_path = "../Tools/Nmap-Scan-to-CSV/nmap_xml_parser.py" port_list_path = "./dict/ports-http-iamthefrogy.txt" port_list_fp = open(port_list_path, "r") port_list = port_list_fp.readline().strip() port_list_fp.close() # 判断IP是否符合规范 def check_ip(data): ip_pattern = re.compile(r'((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0 - 5] | [0 - 4]\d)) | [0 - 1]?\d{1, 2})){3}') result = ip_pattern.match(data) if result is None: return None else: return result.group(0) def filter_ip(): ip_filepath = "./result/ip.txt" # IP数据保存路径 ip_fp = open(ip_filepath, 'r') ip_list = ip_fp.readlines() ip_fp.close() ip_fp = open(ip_filepath, 'w') for ip in ip_list: ip = check_ip(ip) if ip is not None: ip_fp.write(ip + '\n') ip_fp.close() # NMap: csv -> json,提取IP和端口的映射 def read_nmap(data_name): ip2port = {} for item in open("./result/nmap/" + data_name + '.csv'): if item.count(',') > 5: ip = item.strip().split(',')[0] port = item.strip().split(',')[4] if ip != "IP": if ip in ip2port.keys(): ip2port[ip].append(port) else: ip2port[ip] = [port] with open("./result/nmap/" + data_name + '.json', "w") as json_fp: json.dump(ip2port, json_fp) # 执行nmap命令将数据保存为xml与csv格式 def nmap(save_name, need_scan=True): if need_scan: cmd = "nmap -Pn -p {} -oX {} -iL {}".format(port_list, "./result/nmap/" + save_name + ".xml", "./result/ip.txt") os.system(cmd) cmd = "python3 {} -f {} -csv {}".format( nmap_parser_path, "./result/nmap/" + save_name + ".xml", "./result/nmap/" + save_name + ".csv" ) os.system(cmd) read_nmap(save_name) # Masscan: csv -> json,提取IP和端口的映射 def read_masscan(data_name): ip2port = {} for item in open("./result/masscan/" + data_name + '.csv'): if item.count(',') > 5: ip = item.strip().split(',')[0] port = item.strip().split(',')[3] if ip != "IpAddr": if ip in ip2port.keys(): ip2port[ip].append(port) else: ip2port[ip] = [port] with open("./result/masscan/" + data_name + '.json', "w") as json_fp: json.dump(ip2port, json_fp) # 执行masscan命令将数据保存为xml与csv格式 def masscan(save_name, need_scan=True): if need_scan: cmd = "{} -iL {} -Pn -p {} -oX {}".format( masscan_path, "./result/ip.txt", port_list, "./result/masscan/" + save_name + ".xml" ) os.system(cmd) cmd = "python3 {} -f {} -csv {}".format( masscan_parser_path, "./result/masscan/" + save_name + ".xml", "./result/masscan/" + save_name + ".csv" ) os.system(cmd) read_masscan(save_name) # 端口探测主函数 def search_port(conf, filename): filter_ip() if conf['use_nmap']: nmap(filename) if conf['use_masscan']: masscan(filename) if __name__ == '__main__': filter_ip() fp = open("./config.json", "r", encoding="utf-8") conf_json = json.load(fp) config = conf_json['ports'] search_port(config, '2023_1_8')
这段代码在导入 re、os、json 三个模块,并定义了 masscan_path、masscan_parser_path、nmap_parser_path、port_list_path 四个变量。masscan_path 变量定义了 masscan 程序的路径,masscan_parser_path 变量定义了 masscan 的 xml 解析器的路径,nmap_parser_path 变量定义了 nmap 的 xml 解析器的路径,port_list_path 变量定义了端口列表文件的路径。最后,代码打开了端口列表文件,读取了文件中的第一行,并将读取的内容赋值给 port_list 变量。最后关闭了文件。
阅读全文
相关推荐

















