Puncte:0

Cum se creează un fișier nou bazat pe codul python prin terminal?

drapel ae

Sunt un nou utilizator de Linux. Am scris un program Python cu o buclă care rulează de 10 ori și imprimă o linie de fiecare dată. L-am salvat ca printing.py Acum vreau să folosesc terminalul pentru a mă asigura că imprimarea este salvată într-un fișier nou.

Codul pe care il folosesc este:

contor = 1
în timp ce contorul <= 10:
print("Aceasta este linia", contor)
contor = contor +1

Cu toate acestea, nu știu cum să ajung de la programul pe care l-am salvat ca printing.py prin terminal la un nou fișier „rezultat”.

drapel ru
Ei bine, în primul rând, codul tău este invalid, deoarece este copiat/lipit în postarea ta. Veți primi imediat o eroare de indentare, deoarece elementele din bucla while trebuie să fie indentate. În al doilea rând, v-ați gândit să deschideți pur și simplu fișierul în Python și să scrieți rezultatul în fișier, mai întâi să distrugeți orice se află acolo?
Puncte:2
drapel pr

Puteți redirecționa rezultatul programului dvs. utilizând operatorul >.Ieșirea este apoi scrisă în fișierul dat în loc de terminal:

python3 printing.py > rezultat

Rețineți că textul nu este atașat, ci înlocuiește conținutul curent al fișierului. Dacă doriți să adăugați rezultatul la fișier, utilizați operatorul >>.

Există, de asemenea, o modalitate de a obține ieșirea pe terminal și în fișier, astfel încât să puteți vedea ce se întâmplă. Doar direcționați ieșirea către comandă tricou și îl va imprima pe terminalul dvs. și în fișier. Vă puteți imagina această comandă ca o țeavă în formă de T care își redirecționează intrarea către două ieșiri.

python3 printing.py | rezultatul tee

Din nou, acest lucru va suprascrie conținutul curent al fișierului dvs.

Puncte:0
drapel cn

Copiați și inserați următoarele într-un fișier test.py

#!/usr/bin/env python3
#
contor = 1
în timp ce contorul <= 10:
   print("Aceasta este linia", contor)
   contor = contor + 1

Acum rulați comenzile

chmod +x test.py
./test.py > output.txt

Ieșirea ar trebui să fie

Aceasta este linia 1
Aceasta este linia 2
Aceasta este linia 3
Aceasta este linia 4
Aceasta este linia 5
Aceasta este linia 6
Aceasta este linia 7
Aceasta este linia 8
Aceasta este linia 9
Aceasta este linia 10
drapel ru
Aceasta iese la linia de comandă, dar cred că o vor într-un fișier.
Thomas Aichinger avatar
drapel cn
Da, ai dreptate, am uitat să-l redirecționez. Tocmai am rezolvat asta.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.