2017-10-24 4 views
0

Ich bin neu in Python. Ich muss eine Liste mit dem Dateinamen mit seinem Pfad und einigen Befehlen in Python erstellen. was ich in cmd ausführen muss. Es öffnet den Compiler und einige Einstellungen für das Kompilieren der Dateien. mein Problem ist, wenn ich manully paar Dateien mit Befehlen in cmd zu der Zeit es wird funktionieren, aber wenn ich dieselbe Liste über Python ausführen, es sagt, es kann die Pinmap-Datei nicht finden. die folgenden Zeilen schreibe ich in cmd und es funktioniert gut. (apc und beginnen mit '-' sind Befehl von cmd) apc G: \ Organisation \ TE \ Patel \ ASCII_Open_Program \ src \ atp \ Funktionalität \ clk_Watchdog.atp G: \ Organisation \ TE \ Patel \ ASCII_Open_Program \ src \ atp \ Funktionalität \ CP_UV_Threshold.atp -opcode_mode single -pinmap_workbook G: \ Organisation \ TE \ Patel \ ASCII_Open_Programm \ src \ xls \ PinMap_BE.txt -commentsWie kompiliere Dateiliste durch Shell von Python

ich glaube, ich mache dasselbe in Python. Mein Code ist

def APC_Compiler(): 
    list = ["apc "] 
    #list.append('apc ') 
    for root,dirs,files in os.walk(atp_folder_path + '\\SCAN'): 
     for file in files: 
      if file.endswith(".atp"):     
       list.append(os.path.join(root, file)) 

    list.append(' -opcode_mode single ') 
    list.append(' -pinmap_workbook ') 
    list.append(' G:\\Organisation\\TE\\Patel\\ASCII_Open_Program\\src\\xls\\PinMap_BE.txt') 
    list.append(' -comments ')    
    print (list) 
    subprocess.call(list) 

kann mir bitte jemand sagen, was mache ich falsch. Gibt es einen besseren Weg, um die Liste der Dateien mit Befehlen zu erstellen und auszuführen?

+0

Es tut mir leid, dass ich mich nicht auf meine Grammatik konzentriert habe, ich werde beim nächsten Mal daran denken. aber jetzt habe ich die antwort bekommen. Ich muss die gesamte Liste mit dem Befehl in ausführen, um die Zeichenfolge zu öffnen. was ich mit dem Befehl '.join (list) gemacht habe –

Antwort

0

Hier ist meine Lösung, alles, was ich tun muss, ist eine Anweisung hinzuzufügen, die die gesamte Liste in eine einzige Zeichenfolge konvertieren und ausführen kann. Ich habe das in der Nähe der Anweisung kommentiert, die ich hinzugefügt habe, um mein Problem zu lösen.

def apc_compiler(): 
     """ Compiles all the *.atp files into *.pat file """ 

    list = ['apc '] 
    for root, dirs, files in os.walk(atp_folder_path): 
     for file in files: 
      if file.endswith('.atp'): 
       list.append(os.path.join(root, file) + ' ') 

    list.append(' -opcode_mode single ') 
    list.append(' -pinmap_workbook ') 
    list.append(pinmap_folder_path) 
    list.append(' -comments ') 
    list = ''.join(list) # instruction to convert list in to single string 

    subprocess.call(list)