Сначала я хочу запустить команды linux. Что вы хотите использовать, чтобы этот файл capture-csv был получен из этих команд для дальнейшей обработки в коде под этими командами.
import requests
import csv
import pandas as pd
import os
import sys
import subprocess
subprocess.run(["iw","phy","phy0","interface","add","mon0","type","monitor"]) ##these three commands return csv file named capture-csv-01
subprocess.run(["ifconfig","mon0","up"])
subprocess.run(["airodump-ng","-w","capture.csv","mon0"])
with open('/root/Desktop/Python-3.6.5/capture.csv-01.csv' ) as f: ## open csv file
s = f.read().split('\n\n') ## split file in two files using dataframes on the basis of empty line
df1=pd.read_csv(pd.compat.StringIO(s[0]))
df2=pd.read_csv(pd.compat.StringIO(s[1]))
## df2.info()
## df2.drop(df2.columns[[4]],axis=1,inplace=True)
for index,row in df2.iterrows(): ## read each value of each column
Station_MAC= (row["Station MAC"])
First_time_seen=(row[" First time seen"])
Last_time_seen=(row[" Last time seen"])
Power=(row[" Power"])
Packets=(row[" # packets"])
BSSID=(row[" BSSID"])
Probed_ESSIDs=(row[" Probed ESSIDs"])
print(Station_MAC,First_time_seen,Last_time_seen,Power,Packets,BSSID,Probed_ESSIDs)
##code to send data to database
url = "http://10.5.9.162/api/customers_data/create.php"
headers = {
'cache-control': "no-cache",
'Postman-Token': "ca64cf56-19e8-4e6c-85a7-1741355ced79"
}
payload = '{"Station_MAC": "'+str(Station_MAC)+'","First_time_seen": "'+str(First_time_seen)+'","Last_time_seen": "'+str(Last_time_seen)+'","Power": "'+str(Power)+'","Packets":"'+str(Packets)+'","BSSID": "'+str(BSSID)+'","Probed_ESSIDs": "'+str(Probed_ESSIDs)+'"}'
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
Когда я запускаю подпроцессы и код под командами подпроцесса отдельно в отдельных файлах python, я получаю то, что хочу. Но когда я записываю их в один файл только над тремя строками, запускаю nad, чтобы дать csv файл в результате, и тогда ничего не происходит. Как я могу это сделать .?