2012-01-28 14 views
8

क्या raw_input के माध्यम से दर्ज डेटा में न्यूलाइन वर्णों को अनदेखा करने का कोई तरीका है? मैं स्ट्रिंगशीट से प्रतिलिपि बनाई गई और पेस्ट की गई स्ट्रिंग्स की सूची इनपुट करने के लिए raw_input का उपयोग करने का प्रयास कर रहा हूं। समस्या यह है कि ऐसा प्रतीत होता है कि नए लाइन वर्ण डेटा को समय-समय पर दर्ज करने का कारण बनते हैं। सभी रिक्त स्थान किसी भी तरह से छीन दिए जाएंगे, इसलिए डेटालाइन के रूप में नई लाइनों को हटाकर एक अतिरिक्त लाभ होगा। इस डेटा को टर्मिनल प्रॉम्प्ट के माध्यम से सीधे दर्ज किया जाना चाहिए और फ़ाइल से नहीं पढ़ना चाहिए।पायथन raw_input newline को अनदेखा करें

names = raw_input('Shoot me some names partner: ') 

print 'What do you want to do?' 
print '1 - format names for program 1' 
print '2 - format names for program 2' 

first_act = raw_input('Enter choice: ') 

print names 
print first_act 

अब जब मैं इस और इनपुट डमी नाम मैं एक Google दस्तावेज़ स्प्रेडशीट में डाल दिया परीक्षण करने के लिए चलाने के लिए, जैसे ही मैंने shift + CTL + v मारा:

यह मैं अब तक क्या किया है है

[email protected]:~> python pythonproj/names.py 
Shoot me some names partner: abcd,efg,hijkl,mnop 
abcd,efg,hijkl,mnop 
abcd,efg,hijkl,mnop 
abcd,efg,hijkl,mnop 
abcd,efg,hijkl,mnop 
abcd,efg,hijkl,mnop 
abcd,efg,hijkl,mnop 
abcd,efg,hijkl,mnopWhat do you want to do? 
1 - format names for program 1 
2 - format names for program 2 
Enter choice: abcd,efg,hijkl,mnop 
abcd,efg,hijkl,mnop 
[email protected]:~> abcd,efg,hijkl,mnop 
If 'abcd,efg,hijkl,mnop' is not a typo you can use command-not-found to lookup the package that contains it, like this: 
cnf abcd,efg,hijkl,mnop 
[email protected]:~> abcd,efg,hijkl,mnop 
If 'abcd,efg,hijkl,mnop' is not a typo you can use command-not-found to lookup the package that contains it, like this: 
cnf abcd,efg,hijkl,mnop 
[email protected]:~> abcd,efg,hijkl,mnop 
If 'abcd,efg,hijkl,mnop' is not a typo you can use command-not-found to lookup the package that contains it, like this: 
cnf abcd,efg,hijkl,mnop 
[email protected]:~> abcd,efg,hijkl,mnop 
If 'abcd,efg,hijkl,mnop' is not a typo you can use command-not-found to lookup the package that contains it, like this: 
cnf abcd,efg,hijkl,mnop 
[email protected]:~> abcd,efg,hijkl,mnop 
If 'abcd,efg,hijkl,mnop' is not a typo you can use command-not-found to lookup the package that contains it, like this: 
cnf abcd,efg,hijkl,mnop 
[email protected]:~> abcd,efg,hijkl,mnop 

मैं अजगर को बहुत नया हूँ, और मैं अब तक का सबसे अनुभवी प्रोग्रामर नहीं कर रहा हूँ:, प्रवेश से टकराने के बिना मैं इस मिलता है। यह अजगर 2.7 है।

उत्तर

1

मुझे यकीन नहीं है कि आप क्या पूछने की कोशिश कर रहे हैं लेकिन जब आप raw_input() का उपयोग करते हैं, तो यह एक पिछली नईलाइन को स्ट्रिप करता है।

और दस्तावेज़ भी वही कहता है।

यदि त्वरित तर्क मौजूद है, तो यह पीछे की नई लाइन के बिना मानक आउटपुट पर लिखा गया है। फ़ंक्शन तब इनपुट से एक पंक्ति पढ़ता है, इसे एक स्ट्रिंग (एक पिछली न्यूलाइन को अलग करना) में परिवर्तित करता है, और देता है। जब ईओएफ पढ़ा जाता है, तो EOFError उठाया जाता है।

7

क्योंकि raw_input केवल इनपुट से एक लाइन लेता है आप एक पाश बनाने की जरूरत:

names = [] 
print('Shoot me some names partner: ') 
while True: 
    try: 
     name = raw_input() 
    except KeyboardInterrupt: 
     break 
    names.append(name) 

print('What do you want to do?') 
print('1 - format names for program 1') 
print('2 - format names for program 2') 

first_act = raw_input('Enter choice: ') 

print(names) 
print(first_act) 

टेस्ट रन:

Shoot me some names partner: 
name1 
name2 
^CWhat do you want to do? 
1 - format names for program 1 
2 - format names for program 2 
Enter choice: 1 
['name1', 'name2'] 
1 

नोट मैं ^C (Ctrl-C) का उपयोग किया है यहां इनपुट के अंत को इंगित करने के लिए।

+0

हाय, मुझे अपने इनपुट को समाप्त करने के लिए पाइथन कैसे कहना चाहिए? मैंने '^ सी' की कोशिश की, लेकिन यह काम नहीं किया। –

संबंधित मुद्दे