Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在python中等待用户输入文本文件?_Python 3.x - Fatal编程技术网

Python 3.x 如何在python中等待用户输入文本文件?

Python 3.x 如何在python中等待用户输入文本文件?,python-3.x,Python 3.x,我正在编写一个python脚本,我想在其中 使用用户系统的默认文本编辑器创建并随后打开文本文件 等待用户向该文件添加文本,保存该文件,然后关闭文本编辑器 从用户保存的文件中读取 我已经完成了第一步,但我不知道如何从第二步开始。广义地说,当用户向文本文件添加输入时,我如何暂停脚本的执行,然后在退出文本编辑器时重新启动执行?您可以使用子流程模块和等待进程完成 import subprocess p = subprocess.Popen(('gedit',"testFile")) p.wait() p

我正在编写一个python脚本,我想在其中

  • 使用用户系统的默认文本编辑器创建并随后打开文本文件
  • 等待用户向该文件添加文本,保存该文件,然后关闭文本编辑器
  • 从用户保存的文件中读取

  • 我已经完成了第一步,但我不知道如何从第二步开始。广义地说,当用户向文本文件添加输入时,我如何暂停脚本的执行,然后在退出文本编辑器时重新启动执行?

    您可以使用
    子流程
    模块和
    等待进程完成

    import subprocess
    p = subprocess.Popen(('gedit',"testFile"))
    p.wait()
    print file("testFile").readlines()
    

    您可以使用
    子流程
    模块和
    等待
    完成流程

    import subprocess
    p = subprocess.Popen(('gedit',"testFile"))
    p.wait()
    print file("testFile").readlines()
    

    看看-,听起来你想在一个子流程中打开
    $EDITOR
    ,然后在完成后正常读取文件。我认为这是一个更简单的解决方案。您可以使用未分配的
    输入('对文件进行更改后按enter)
    ,这是一种“暂停”程序以便用户进行更改的粗略方式。我正在使用os.startfile打开文件。你知道有没有一种方法可以在不改变我以前编写的代码的情况下实现这一点吗?看一下--听起来你想在子流程中打开
    $EDITOR
    ,然后在完成后正常读取文件。我认为该操作正在寻找一种更简单的解决方案。您可以使用未分配的
    输入('对文件进行更改后按enter)
    ,这是一种“暂停”程序以便用户进行更改的粗略方式。我正在使用os.startfile打开文件。您知道有没有一种方法可以在不更改以前编写的代码的情况下执行此操作?您知道如何让系统的默认文本编辑器用作Popen的第一个参数吗?您可以使用环境变量
    editor
    在类unix系统中访问默认编辑器。
    subprocess.Popen([“start”、“/WAIT”、“file.txt”],shell=True)
    应该这样做@Danny@Heisenbergwindows有这样的变量吗?@wnnmaw我会试试这个。有没有一种方法可以不使用shell=True完成同样的事情?根据python文档,它可能导致安全漏洞。您知道如何让系统的默认文本编辑器用作Popen的第一个参数吗?您可以使用环境变量
    editor
    在类unix系统中访问默认编辑器。
    subprocess.Popen([“start”、“/WAIT”、“file.txt”]、shell=True)
    应该这样做@Danny@Heisenbergwindows有这样的变量吗?@wnnmaw我会试试这个。有没有一种方法可以不使用shell=True完成同样的事情?根据python文档,它可能导致安全漏洞。