Saya menggunakan segmen kode berikut untuk membaca file dengan python:
with open ("data.txt", "r") as myfile:
data=myfile.readlines()
File input adalah:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
dan ketika saya mencetak data saya dapatkan
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
Saat saya melihat data dalam list
bentuk. Bagaimana cara membuatnya menjadi string? Dan juga bagaimana cara menghapus "\n"
, "["
dan "]"
karakter dari itu?
Jawaban:
Anda bisa menggunakan:
sumber
open("data.txt").read().replace('\n','')
saja?rstrip('\n')
hanya akan menghapus baris baru dari baris terakhir,replace('\n','')
menghapusnya di mana-mana (pada dasarnya membuat seluruh file satu baris)Gunakan
read()
, bukanreadline()
:sumber
encoding="utf-8"
Anda dapat membaca dari file dalam satu baris:
Harap dicatat bahwa ini tidak menutup file secara eksplisit.
CPython akan menutup file ketika keluar sebagai bagian dari pengumpulan sampah.
Tetapi implementasi python lainnya tidak. Untuk menulis kode portabel, lebih baik menggunakan
with
atau menutup file secara eksplisit. Pendek tidak selalu lebih baik. Lihat https://stackoverflow.com/a/7396043/362951sumber
open
harus digunakan dalam suatuwith ... as
pernyataan.with ... as
pernyataan itu membawa sesuatu?with ... as
ataustr.close()
seperti yang ditunjukkan dalam jawaban Pedro. Lebih lanjut tentang pentingnya menutup file di sinistr()
dari builtinUntuk menggabungkan semua baris ke string dan menghapus baris baru yang biasanya saya gunakan:
sumber
Di Python 3.5 atau lebih baru, menggunakan pathlib Anda dapat menyalin konten file teks ke dalam variabel dan menutup file dalam satu baris:
dan kemudian Anda bisa menggunakan str.replace untuk menghapus baris baru:
sumber
join () akan bergabung dengan daftar string, dan rstrip () tanpa argumen akan memangkas spasi, termasuk baris baru, dari akhir string.
sumber
Ini dapat dilakukan dengan menggunakan metode read ():
Atau karena mode default itu sendiri adalah 'r' (baca) jadi cukup gunakan,
sumber
Saya telah mengutak-atik ini untuk sementara waktu dan lebih suka menggunakan
read
kombinasirstrip
. Tanparstrip("\n")
, Python menambahkan baris baru ke akhir string, yang dalam banyak kasus tidak terlalu berguna.sumber
Sulit untuk mengetahui dengan pasti apa yang Anda kejar, tetapi sesuatu seperti ini harus Anda mulai:
sumber
data = ' '.join(line.replace('\n', '') for line in myfile)
atau versi MagerValp.Saya terkejut
splitlines()
belum ada yang disebutkan .Variabel
data
sekarang menjadi daftar yang terlihat seperti ini ketika dicetak:Perhatikan tidak ada baris baru (
\n
).Pada titik itu, sepertinya Anda ingin mencetak kembali baris ke konsol, yang dapat Anda capai dengan loop for:
sumber
Anda juga dapat mengupas setiap baris dan menyatukannya menjadi string terakhir.
Ini juga akan berhasil dengan baik.
sumber
Anda dapat mengompres ini menjadi satu menjadi dua baris kode !!!
jika file Anda berbunyi:
output python
sumber
Ini adalah solusi satu baris, salin-tempel yang juga menutup objek file:
sumber
sumber
string += line
harus dihindari. Beberapa versi Python mungkin berhasil menghindari perilaku O (n ^ 2) di sini tetapi jawaban lain yang telah diberikan lebih baik dari ini. Anda juga tidak menghapus baris baru yang diminta sehingga kode Anda hanya cara yang sangat lambat untuk melakukanstring = f.read()
python3: Google "daftar comphrension" jika sintaks braket persegi baru bagi Anda.
sumber
Sudahkah Anda mencoba ini?
sumber
Saya tidak merasa ada orang yang menjawab [] bagian dari pertanyaan Anda. Ketika Anda membaca setiap baris ke dalam variabel Anda, karena ada beberapa baris sebelum Anda mengganti \ n dengan '' Anda akhirnya membuat daftar. Jika Anda memiliki variabel x dan cetak hanya dengan
x
atau cetak (x)
atau str (x)
Anda akan melihat seluruh daftar dengan tanda kurung. Jika Anda memanggil setiap elemen dari (array of sort)
x [0] lalu itu menghilangkan tanda kurung. Jika Anda menggunakan fungsi str (), Anda hanya akan melihat data dan bukan ''. str (x [0])
sumber
Mungkin Anda bisa mencoba ini? Saya menggunakan ini dalam program saya.
sumber
Ekspresi reguler juga berfungsi:
sumber
Untuk menghapus jeda baris menggunakan Python, Anda dapat menggunakan
replace
fungsi string.Contoh ini menghapus semua 3 jenis jeda baris:
Contoh file adalah:
Anda dapat mencobanya menggunakan skenario replay ini:
https://repl.it/repls/AnnualJointHardware
sumber
Ini berfungsi: Ubah file Anda menjadi:
Kemudian:
Ini membuat daftar bernama
words
yang sama dengan:Itu menyingkirkan "\ n". Untuk menjawab bagian tentang tanda kurung menghalangi Anda, lakukan saja ini:
Atau:
Ini mengembalikan:
sumber
Kode ini akan membantu Anda membaca baris pertama dan kemudian menggunakan daftar dan opsi split Anda dapat mengonversi kata baris pertama yang dipisahkan oleh spasi untuk disimpan dalam daftar.
Daripada Anda dapat dengan mudah mengakses kata apa pun, atau bahkan menyimpannya dalam sebuah string.
Anda juga dapat melakukan hal yang sama dengan menggunakan for for.
sumber
sumber
Coba yang berikut ini:
Perhatian: Itu tidak menghapus
\n
. Ini hanya untuk melihat teks seolah-olah tidak ada\n
sumber