python menekan keluaran subproses

  • ada tantangan peretasan.
  • saya punya file yang dilindungi kata sandi bernama "lock"
  • membuka file dengan kata sandi mengembalikan kode QR.
  • perlu menetapkan QR ke var.
  • Tidak ingin menampilkan QR setiap saat

Berfungsi tetapi memiliki keluaran:

var = os.system("./lock %s" % password)

SO bilang aku harus menggunakan:

var = subprocess.Popen("something.py")

mencoba meneruskan seperti di atas tetapi gagal karena "Popen" menginginkan daftar atau string. jika saya menggabungkan perintah sebagai string sebelum menggunakan popen, itu masih ditampilkan.

apa yang sudah dibaca (setidaknya)

Menekan keluaran subproses Meneruskan Variabel ke Subprocess.Popen Cara memanggil perintah dan tidak mendapatkan outputnya

kode lengkap:

import sys
import os
import subprocess

def file_len(fname):
with open(fname) as f:
    for i, l in enumerate(f):
        pass
    return i + 1

   lock = "/root/share/lock"
   print "Hello"
   passfile = raw_input("Enter the password file name: ")
   assert os.path.exists(passfile), "I did not find the file at, "+str(passfile)
   devnull = open(os.devnull, 'wb')
   trys = file_len(passfile)
   passfile = open(passfile,'r+')
   cnt = 1
   wrong = os.system("./lock penis")

   for password in passfile:
   #       com = ("./lock %s" % password)
   #       var = os.system("./lock %s" %  password)
   var = subprocess.Popen("./lock  %s" % password, stderr=devnull, stdout=devnull)

   if var == wrong:
            os.system('clear')
            cnt += 1
            print ("Try  %s/%s " %(cnt, trys))
            print ("Currently PIN: %s" % password)
    else:
            print "!!!!!!!!!!!!!!!!!"
            print password

mengalihkan ke devnull juga tidak berhasil. OSError: [Errno 2] Tidak ada file atau direktori seperti itu: ''


person cuilster    schedule 24.04.2018    source sumber


Jawaban (1)


Saya sarankan Anda mencoba menggunakan os.devnull secara langsung sebagai target daripada membuka sebagai file. Saya yakin Anda mendapatkan kesalahan dalam null

devnull= open(os.devnul, 'wb')

Alasannya adalah karena /dev/null lebih merupakan pengganti untuk mengirim ke apa pun (kekosongan) daripada file sebenarnya yang dapat Anda buka.

person Abhishek P    schedule 08.05.2018