2017-04-18 3 views
1

In Bash habe ich eine Datei, die meine Passwörter im variablen Format speichert.Python - Lesen Wert der Variablen aus Datei

z.B.

cat file.passwd 
password1=EncryptedPassword1 
password2=EncryptedPassword2 

Nun, wenn ich den Wert von password1 verwenden möchten, ist das alles, was ich in Bash tun müssen.

grep password1 file.passwd | cut -d'=' -f2 

Ich suche eine Alternative dafür in Python. Gibt es eine Bibliothek, die Funktionalität bietet, um einfach den Wert zu extrahieren oder müssen wir es manuell tun wie unten?

with open(file, 'r') as input: 
     for line in input: 
      if 'password1' in line: 
       re.findall(r'=(\w+)', line) 
+1

Mögliches Duplikat von [Parse Schlüsselwertpaare in einer Textdatei] (http://stackoverflow.com/questions/9161439/parse-key-value-pairs-in-a-text-file) –

Antwort

2

die Datei lesen und die Kontroll Anweisung hinzufügen:

if line.startswith("password1"): 
    print re.findall(r'=(\w+)',line) 

-Code:

import re 
with open(file,"r") as input: 
    lines = input.readlines() 
    for line in lines: 
     if line.startswith("password1"): 
      print re.findall(r'=(\w+)',line) 
+0

Warum nicht nur 'für Eingabezeile: '? (Obwohl "Eingabe" einen anderen Namen gegeben, so dass es nicht die integrierte überschrieben würde wäre gut) –

+0

nur um einen einfachen Ansatz hier zu geben. obwohl sollte einen anderen Namen verwenden. – bhansa

0

Es ist nichts falsch mit dem, was Sie geschrieben haben. Wenn Sie Code wollen Golf spielen:

line = next(line for line in open(file, 'r') if 'password1' in line) 
+0

line = next (line.strip(). split ('=') [1] für Zeile in geöffnet ('mout.txt', 'r') wenn 'password1' in der Zeile) wenn Sie nur das Passwort zurückgegeben wollen – Chris

0

Ich fand diese module sehr nützlich! Das Leben wurde viel einfacher.

+1

Ziehen Sie nicht in Betracht, nur Links in Ihre Lösung hinzuzufügen, da diese leicht entfernt werden können. – bhansa