Mencetak keluaran dalam satu baris dari masukan standar dengan python

Saya ingin membaca baris dari input standar, seperti string yang dipisahkan dengan koma, lalu mencetak baris yang sama dengan kata tambahan dalam satu baris. Namun, saat mencetaknya, kata tambahan selalu dicetak di baris baru. Tapi saya membutuhkannya dalam satu baris.

Ini kode saya

while 1:
try:
    line = sys.stdin.readline()
except KeyboardInterrupt:
    break

if not line:
    break

additional = "END"
print(line+additional)

Dan ketika saya mencobanya:

>>python3.4 output.py
>>a, b
>>a, b
>>END
>>

Tapi saya menginginkannya:

>>python3.4 output.py
>>a, b
>>a, bEND

person adomasb    schedule 14.08.2014    source sumber


Jawaban (1)


Nilai line Anda berisi karakter baris baru; hapus dari nilainya:

print(line.rstrip('\n') + additional)

str.rstrip() menghapus karakter dari akhir; di sini kami memintanya untuk menghapus semua baris baru dari akhir line; ia mengembalikan objek string dengan karakter baris baru yang dihapus.

Demo:

>>> line = 'Hello, world!\n'
>>> line.rstrip('\n')
'Hello, world!'
>>> additional = 'END'
>>> print(line + additional)
Hello, world!
END
>>> print(line.rstrip('\n') + additional)
Hello, world!END
person Martijn Pieters    schedule 14.08.2014
comment
Terima kasih banyak! Saya punya firasat tentang 'karakter baris ekstra baru'. - person adomasb; 14.08.2014