python satırlı yazı yapıştırma

Başlatan marslı, 22 Ocak 2017 - 15:15:57

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

marslı

merhaba arkadaşlar.
pythonda yapmak istediğim şey şu. input girişi belirledim. raw input girişini dosyaya yazdıracağım. buraya kadar sorun yok. ama raw_inputa yapıştırılacak metin 4 satır ve 4 satırı yapıştırdığımda komut sonlannıyor. bunu nasıl engelleyebilirim?

barış

Biraz daha açıklayıcı olursan daha güzel olur.
Mesela aldığın hata tipi nedir? Nasıl yapıştırmaya çalışıyorsun? En önemlisi, kod nerde? :D

marslı

Sorun burada zaten kod yok :)

Bak şöyle söyleyim. 3 satırlık bir yazı olsun.
Alıntı YapAhmet dün eve geç saatte geldi.
Fatih Linux yükledi.
Hangi şarkıyı dinliyorsun?
Ben bunu pythonda ki girişe eksiksiz kopyalamak istiyorum. Bu satırları değişkene aktaracak.
raw_input ile denediğimde ilk satırı yapıştırıyor sonra betiği sonlandırıp pythondan çıkıyor. 

barış

Tamam print ediyor musun peki değişkeni? :)

guestwho

#4
>>> lines = []
>>> line = " "
>>> while len(line) > 0:
...     try:
...         line = raw_input("").decode("utf-8")
...     except EOFError:
...         break
...     lines.append(line)
...
Ahmet dün eve geç saatte geldi.
Fatih Linux yükledi.
Hangi şarkıyı dinliyorsun?



Yukarıdaki kodları etkileşimli komut satırında deneyebilirsin. "line" değişkeni her girdi/satır sonunda "lines" listesine ekleniyor. Artık bütün satırları içeren "lines" listesini istediğin gibi kullanabilirsin.
You want weapons? We're in a library. Books are the best weapon in the world. This room's the greatest arsenal we could have. Arm yourself!

marslı

Girdileri dosyaya yazdıracağım @barış

@guestwho bunu sonlandırınca dosyaya nasıl yazacak? sonlandırmak için CTRL+C yapıyoruz. bu kez komut sonlanıyor

guestwho

#!/usr/bin/env python2
# -*- coding: utf-8 -*-

def main():
    # line değişkeninin tek boşluk içermesi
    # çoklu satır yapıştırdıktan sonra enter tuşuna bastığımızda
    # girişi sonlandırmaya ve döngüden çıkmamıza yarıyor.
    line = " "
   
    # data.txt diye bir dosya aç
    # "a" parametresi dosyanın sonuna yazmak için gerekli
    data = open('data.txt', 'a')
   
    # herhangi bir karakter girişi olmazsa --
    # enter tuşuna bastığında döngüyü sonlandır.
    while len(line) > 0:
        try:
            line = raw_input("")
        except EOFError:
            break
        # satırı ekle
        data.write(line)
        # satırı sonlandır
        data.write("\n")
    # döngüden çıkınca dosyayı kapat.
    data.close()

if __name__ == "__main__":
    main()


"multiline.py" dosyasına bu kodları kaydedip şu şekilde çalıştırabilirsin:
python2 multiline.py
You want weapons? We're in a library. Books are the best weapon in the world. This room's the greatest arsenal we could have. Arm yourself!

marslı

Geç yanıt oldu ama biraz yeni deneyebildim. :)
Her şey tam istediğim gibi ama sonunda komut sonlanmamalı devam etmeli. yani dosyaya yazacak sonra komuta devam edecek. bu şekilde sonlanıyor. onu nasıl hallederiz

ahmet12

en basina while True dersen hic sonlanmaz