web-gelistirme-sc.com

Python'da birden fazla raw_input satırını nasıl okuyabilirim?

Birden fazla kullanıcı girişi satırı alan bir Python programı oluşturmak istiyorum. Örneğin:

This is a multilined input.
It has multiple sentences.
Each sentence is on a newline.

Birden fazla ham girdi satırını nasıl alabilirim?

49
felix001
sentinel = '' # ends when this string is seen
for line in iter(raw_input, sentinel):
    pass # do things here

Her satırı bir dizge olarak almak için:

'\n'.join(iter(raw_input, sentinel))

Python 3:

'\n'.join(iter(input, sentinel))
66
jamylak

Kullanıcı boş bir satır girinceye kadar satırları okumaya devam edin (veya stopword öğesini başka bir şeyle değiştirin)

text = ""
stopword = ""
while True:
    line = raw_input()
    if line.strip() == stopword:
        break
    text += "%s\n" % line
print text
6
Junuxx

Alternatif olarak, sys.stdin.read() dosyasını deneyebilirsiniz

import sys
s = sys.stdin.read()
print(s)
4
Venkat

Bunu dene

import sys

lines = sys.stdin.read().splitlines()

print(lines)

GİRİŞ:

1

2

3

4

ÇIKTI: ['1', '2', '3', '4']

1
Arpitt Desai

Sadece bu cevabı genişleterek https://stackoverflow.com/a/11664652/4476612 Herhangi bir durma yerine Word, bir satır olup olmadığını kontrol edebilirsiniz.

content = []
while True:
    line = raw_input()
    if line:
        content.append(line)
    else:
        break

satırları bir listeye alacaksınız ve sonra\n ile birleşerek formatınıza gireceksiniz.

print '\n'.join(content)
1

sys.stdin.read () kullanıcıdan çok satırlı girdi almak için kullanılabilir. Örneğin

>>> import sys
>>> data = sys.stdin.read()
  line one
  line two
  line three
  <<Ctrl+d>>
>>> for line in data.split(sep='\n'):
  print(line)

o/p:line one
    line two
    line three
0
vishnu vardhan

* Bu soru ile uzun zamandır kendimle mücadele ettim, çünkü kullanıcının Control D (veya stop Word) ile sonlandırması gerekmeden birden çok kullanıcı girişi satırını okumak için bir yol bulmak istedim. Python3'te pyperclip modülünü kullanarak (pip kurulumunu kullanarak yüklemeniz gerekecek) bir yolunu buldum Aşağıda IPs .__ listesini gösteren bir örnek verilmiştir. *

import pyperclip

lines = 0

while True:
    lines = lines + 1 #counts iterations of the while loop.

    text = pyperclip.paste()
    linecount = text.count('\n')+1 #counts lines in clipboard content.

    if lines <= linecount: # aslong as the while loop hasn't iterated as many times as there are lines in the clipboard.
        ipaddress = input()
        print(ipaddress)

    else:
        break

Benim için bu tam olarak aradığım şeyi yapıyor; birden fazla giriş satırı alın, gereken işlemleri yapın (burada basit bir baskı) ve son satır işlendiğinde döngüyü kırın. Umarım size de eşit derecede yardımcı olabilir.

0
Jon