Python raw_input 忽略换行
有没有办法在通过raw_input输入数据时忽略换行符?我想用raw_input来输入从电子表格复制粘贴过来的字符串列表。问题是,换行符似乎导致数据提前输入。反正所有的空格都会被去掉,所以在输入数据时去掉换行符会更好。这个数据需要直接通过终端提示输入,而不是从文件中读取。
这是我到目前为止所做的:
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
现在当我运行这个程序,并输入我在谷歌文档电子表格中放入的测试名字时,一按下shift+ctl+v,没按回车就得到了这个:
seth@linux-1337:~> 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
seth@linux-1337:~> 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
seth@linux-1337:~> 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
seth@linux-1337:~> 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
seth@linux-1337:~> 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
seth@linux-1337:~> 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
seth@linux-1337:~> abcd,efg,hijkl,mnop
我对python还很陌生,远不是最有经验的程序员。这是python 2.7。
2 个回答
1
我不太明白你想问什么,但当你使用raw_input()时,它会去掉输入后面的换行符。
文档里也说了这一点。
如果你提供了提示信息,它会被输出到屏幕上,但后面不会加换行符。然后这个函数会从输入中读取一行,把它转成字符串(并去掉后面的换行符),最后返回这个字符串。如果读取到文件结束符(EOF),就会抛出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)来表示输入的结束。