Mencoba mencari cara untuk menulis siklus if untuk memeriksa apakah sebuah baris kosong.
File tersebut memiliki banyak string, dan salah satunya adalah baris kosong untuk memisahkan dari pernyataan lain (bukan a ""
; apakah carriage return diikuti oleh carriage return lain menurut saya)
new statement
asdasdasd
asdasdasdasd
new statement
asdasdasdasd
asdasdasdasd
Karena saya menggunakan modul input file, apakah ada cara untuk memeriksa apakah suatu baris kosong?
Menggunakan kode ini sepertinya berhasil, terima kasih semuanya!
for line in x:
if line == '\n':
print "found an end of line"
x.close()
if line in ['\n']
, Anda harus menggantinya denganif line == '\n'
.os.linesep
daripada['\n', '\r\n']
?Saya menggunakan kode berikut untuk menguji baris kosong dengan atau tanpa spasi.
if len(line.strip()) == 0 : # do something with empty line
sumber
line.strip() == ''
Atau, jika Anda tidak ingin "memakan" baris yang terdiri dari spasi:
line in ('\n', '\r\n')
sumber
\r\n
memperhitungkan akhiran baris gaya Windows (CRLF)\n
, makaline == '\n'
lebih baik. Anda mungkin harus mencobanya lagi dan mencari tahu apa masalah Anda.\r\n
jika Anda tidak menggunakanmode='rU'
(2) Dapatkan petunjuk:print repr(line)
dan jika itu tidak memberikan petunjuk, beri tahu kami apa yang "tidak berhasil" berarti bagimu.Anda harus membuka file teks menggunakan
rU
agar baris baru diubah dengan benar, lihat http://docs.python.org/library/functions.html#open . Dengan cara ini tidak perlu memeriksa\r\n
.sumber
U
argumen tidak didukung di python3.Saya pikir lebih tepat untuk menggunakan ekspresi reguler:
import re for i, line in enumerate(content): print line if not (re.match('\r?\n', line)) else pass
Ini akan cocok di Windows / unix. Selain itu, jika Anda tidak yakin tentang baris yang hanya berisi karakter spasi, Anda dapat menggunakannya
'\s*\r?\n'
sebagai ekspresisumber