2017-12-19 2 views
0

Um mit der Programmierung als Ganzes zu beginnen, empfahlen einige Freunde, zuerst Python zu lernen, bevor sie sich auf etwas anderes konzentrierten. Ich fing an, Automate the Boring Stuff mit Python von Al Sweigart zu lesen und ich finde es eine nette Sache für Anfänger..py mit .bat-Datei wird nicht ausgeführt

Anywho, ich laufe auf ein Problem, wenn ich versuche, ein bestimmtes Projekt (namens pw.py, das ist ein unsicherer Kennwortkopierer) aus dem Ausführen-Fenster auszuführen. Ich habe alles getan, was getan werden muss: eine .bat-Datei erstellt; die Erweiterung wurde der Umgebung hinzugefügt; und natürlich Python korrekt installiert. Wenn ich jedoch versuche, es auszuführen, wird der cmd-Bildschirm für einen Bruchteil einer Sekunde angezeigt und dann ohne Kopieren kopiert. Ich habe versucht, verschiedene Variablen zu definieren, deren Werte input() in verschiedenen Zeilen sind, um herauszufinden, wo das Problem ohne Erfolg abläuft - es machte dasselbe. Ich habe sogar versucht, sys.exit() zu entfernen, weil ich dachte, dass es ein Problem verursacht.
Kann mir jemand helfen?

Der Code Ich versuche zu laufen:

#! python3 

#pw.py - An insecure password locker program. 

passwords = {'email':'ffd458fds8eth369h', 
      'blog':'uibpvnt843kjlg8u65', 
      'luggage': '12345'} 

import sys, pyperclip 
if len(sys.argv) < 2: 
    print('Usage: python pw.py [account] - copy account password') 
    sys.exit() 

account = sys.argv[1] #first command line arg is the account name 

if account in passwords: 
    pyperclip.copy(passwords[account]) 
    print('Password for ' + account + 'copied to clipboard.') 


else: 
    print('There is no account named ' + account) 

Die Batch-Datei enthält:

@py.exe C:\path\pw.py %* 
@pause 

Ich habe auch versucht, ein anderes:

@echo off 
python c:\path\pw.py %* 
pause 

ich diese eingefügt haben in das Lauffenster (unter Verwendung aller verschiedenen Arten von Klammern):

pw.py <email> 
C:\path\pw.py <email> 
C:\windows\py.exe c:\path\pw.py <email> #(I don't know if this one is correct but I tried it anyway) 

Antwort

0

Ich habe Ihren Code versucht, und es scheint, erwarten gut zu funktionieren:

Die Batch-Datei enthält: @ py.exe C: \ path \ pw.py% * @pause

bereites Interpreter vollständigen Pfad

zum Beispiel die Angabe:

@"C:\Anaconda3\python.exe" "C:\Users\someuser\PycharmProjects\test\pw.py" %* 
+0

Es hat nicht funktioniert - immer noch nicht kopieren. Aber es ist gut zu wissen, dass mit dem Code nichts falsch ist (d. H. Ich habe alles richtig gemacht). Darf ich fragen, was Sie in das Lauffenster tippen? Ich fürchte, ich könnte ein falsches Argument oder etwas passieren. – Skullz

+0

Ich benutze nur die Fledermaus-Datei wie Sie, ich nahm auch den Import, den Sie getan haben, und legen Sie es oben in das Skript ... versuchen Sie es auch – Marom

+0

wow. Den Import auf die Oberseite zu machen, funktionierte tatsächlich. Das ist seltsam. Vielen Dank! – Skullz

0

Ich bin mir ziemlich sicher, dass in Python 3 Modul importieren immer die erste Sache sein muss, wenn ein Modul benötigt wird. Kommentare sind eine Ausnahme.

+0

Es ist nur zu empfehlen, nicht zwingend erforderlich. – Melebius

+0

Das habe ich gesagt – Keethesh

Verwandte Themen