2012-01-28 45 views
8

Có cách nào bỏ qua các ký tự dòng mới trong dữ liệu được nhập thông qua raw_input không? Tôi đang cố gắng sử dụng raw_input để nhập danh sách các chuỗi được sao chép và dán từ bảng tính. vấn đề là có vẻ như các ký tự dòng mới làm cho dữ liệu được nhập sớm. Tất cả các không gian trống sẽ bị tước đi, vì vậy hãy xóa các dòng mới khi dữ liệu được nhập vào sẽ là một lợi ích bổ sung. Dữ liệu này cần phải được nhập trực tiếp thông qua dấu nhắc thiết bị đầu cuối và không đọc từ tệp.Python raw_input bỏ qua dòng mới

Đây là những gì tôi đã làm cho đến nay:

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 

Bây giờ khi tôi chạy này và nhập tên giả tôi đưa vào một doc bảng google để kiểm tra, ngay sau khi tôi nhấn shift + ctl + v , mà không nhấn enter Tôi nhận được điều này:

[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 

Tôi khá mới với python và tôi không phải là lập trình viên có kinh nghiệm nhất cho đến nay. Đây là python 2.7.

Trả lời

1

Tôi không chắc chắn những gì bạn đang cố hỏi nhưng khi bạn sử dụng raw_input(), nó sẽ loại bỏ một dòng mới.

Và tài liệu cũng nói như vậy.

Nếu đối số nhắc hiện tại, nó được ghi vào đầu ra tiêu chuẩn mà không có dấu dòng mới. Hàm này sau đó đọc một dòng từ đầu vào, chuyển đổi nó thành một chuỗi (tước một dòng mới) và trả về . Khi đọc EOF, EOFError được nâng lên.

7

raw_input chỉ mất một dòng từ đầu vào bạn cần phải tạo ra một vòng lặp:

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) 

Chạy thử:

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 

Note Tôi đã sử dụng ^C (Ctrl-C) ở đây để cho biết kết thúc của đầu vào.

+0

Xin chào, tôi nên nói với python như thế nào tôi đã hoàn thành đầu vào của mình? Tôi đã thử '^ c', nhưng nó không hoạt động. –

Các vấn đề liên quan