Saya mencoba mereplikasi makro Excel VBA ke Python demi mempelajari bahasa pemrograman baru dan saya terjebak pada titik di mana Google sendiri tidak membantu (saya kira saya bahkan tidak tahu apa yang harus dicari). Bisakah Anda mencobanya?

Apa yang saya harapkan dari program ini: Saat menjalankan pengguna akan diminta dengan beberapa opsi dan jika inputnya 0 maka harus meminta input multi baris yang berisi kode sumber HTML lengkap dari situs web ini Alat Steam

Setelah input, pengguna diharapkan untuk menekan CTRL+D / CTLR+Z untuk mengonfirmasi tidak ada lagi yang perlu ditambahkan (Saya pikir masalahnya ada di sini, mungkin tidak dapat "menghapus" kesalahan EOF saat menggunakan input () lagi?)

Kemudian sebagai keluaran, program harus mengembalikan 10 baris pertama yang dibatasi oleh koma dan membuat input () lain untuk menghindari jendela menutup otomatis.

Apa masalahnya: Ketika saya menjalankannya dari desktop (mengklik dua kali file .py) itu menutup otomatis tanpa membuat input () terakhir.

Ketika saya menjalankannya dari PyCharm, itu berjalan dengan baik dan input terakhir tetap menunggu tindakan pengguna. Namun, itu membuang kesalahan seperti ini:

File "D:/Stuff/_root/py/Steam/steam_cards_manager.py", line 51, in z_parse_tbody
input('\nCopy the program output and type Back:') EOFError: EOF when reading a line

Umpan balik apa pun dihargai karena saya tidak tahu apakah saya melakukan sesuatu dengan cara yang mudah/efisien.

Saya telah mengunggah file .py saya dan juga contoh HTML untuk mempermudah mereplikasi masalah, semoga membantu.

https://github.com/brmenezewe/db

0
Wendell Menezes 9 Maret 2020, 10:48

1 menjawab

Jawaban Terbaik

Ternyata saya harus mengganti pintasan CTRL+D dengan kata "pemicu" yang ketika dikirim melalui satu input() itu merusak loop While dan menggabungkan input yang diterima sebelumnya:

def z_input_lines():
    lines = []
    while True:
        line = input()
        if not line or line.lower() != "go":
            lines.append(line)
        else:
            break
    return "".join(lines)
0
Wendell Menezes 9 Maret 2020, 11:38