Γράψτε μια νέα εντολή δεν εκτυπώνει πάντα στην ίδια γραμμή

ψήφοι
0

Είμαι χρησιμοποιώντας τις παρακάτω εντολές μέσα σε ένα βρόχο για να ανοίξετε ένα αρχείο .txt και να γράψει κάποια αποτελέσματα στο αρχείο.

with open ('results.txt', 'a') as file: 
    file.write('%s %d %s %s \n' %(timestamp, v, str(dcur), str(gcur)))

Ωστόσο, τα αποτελέσματα δεν εκτυπώνονται στην ίδια γραμμή στο αρχείο .txt και str (gcur) εμφανίζεται στην επόμενη.

Γιατί συμβαίνει αυτό και πώς θα μπορούσε να λυθεί;

Δημοσιεύθηκε 24/10/2019 στις 11:53
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
1

Πιθανότατα οφείλεται στο γεγονός ότι όταν καλείτε strνα dcurπροσθέτει μια "\n"κάπως.

Μπορείτε να το stript:

with open ('results.txt', 'a') as file: 
    file.write('%s %d %s %s \n'.format(timestamp, v, str(dcur).rstript("\n"), str(gcur).rstript("\n")))
Απαντήθηκε 24/10/2019 στις 11:57
πηγή χρήστη

ψήφοι
0

Μπορείτε να εκτυπώσετε το string μορφή '%s %d %s %s \n'στην οποία %sκαι %dαντικαθίστανται από timestamp, v, str(dcur), str(gcur)τις μεταβλητές. Σημειώστε το \nστο τέλος της συμβολοσειράς μορφή σας - αυτό είναι ο χαρακτήρας νέας γραμμής. Θα πρέπει να το αφαιρέσετε, αν θέλετε τα πάντα να αναγράφεται στην ίδια γραμμή, όπως αυτό:

with open ('results.txt', 'a') as file: 
    file.write('%s %d %s %s' %(timestamp, v, str(dcur), str(gcur)))
Απαντήθηκε 24/10/2019 στις 12:14
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more