我是一个完全的新手,试图自学 Python 以促进个人成长和发展。所以请对我放轻松。(如果有任何生物学问题,我很乐意回报您!)
我正在尝试在 MacOSX(10.14.2 Mojave)上的 PyCharm CE 中编写一个程序来执行以下操作:
1)让用户通过从源复制/粘贴一次输入一段多行的文本。例如:
玛丽和贝丝
去了
公园。
2) 将所有行合二为一,将 \n 替换为空格,如下所示:
玛丽和贝丝去了公园。
我已经做了很多阅读,我发现让用户一次输入多行文本的首选方法是使用 sys.stdin.readlines(),确保用户调用使用 Control-D 结束文件。到目前为止,我已经想出了以下内容
import sys
print('''What is the text that you would like to enter?
(press command-d at the end)\n''')
orig_text = sys.stdin.readlines()
one_string = "".join(orig_text)
one_string = one_string.replace('\n','')
print(one_string)
到目前为止,一切都很好 - one_string 打印“玛丽和贝丝去了公园”。
当我使用常规的 input() 函数时,问题出在代码的后面......
search_word = input('Which word would you like to replace?')
print(search_word)
我收到以下错误消息:EOFError: EOF when reading a line
我看过其他有类似问题的帖子,有些答案建议我尝试...
sys.stdin.close()
sys.stdin = open('/dev/tty')
search_word = input('Which word would you like to replace?')
print(search_word)
我试过了,但现在我收到以下错误:OSError: [Errno 6] Device not configured: '/dev/tty'。我也试过sys.stdin.flush(),但无济于事。
在这一点上,我放弃了,决定问专业人士: a) 有没有更好的方法让用户将多行文本复制并粘贴到程序中;b)如果到目前为止我的方法还可以,我怎样才能在不破坏计算机的情况下摆脱 OSError?
提前致谢!马里亚诺