如何将名称文件作为一个变量引用,以便以后在程序中打开。

问题描述 投票:1回答:1

我的程序首先打开一个空白文件,以便稍后进行解析。

proc = subprocess.Popen(['gedit'])
proc.wait()

然后让用户粘贴一个网页的HTML,并保存为。

"first_webpage.html"

在后面的代码中,我把它硬编码成这样的方式,使它打开文件,就像

webHtml = open('first_webpage.html').read()
soup = BeautifulSoup(webHtml, 'html.parser')

我怎样才能使它成为一个文件,无论用户给文件起什么名字,它都会被用于 webHtml.

我想避免硬编码,因为我想不是每个人都想给文件起同样的名字。

我在想用命令行参数,但不知道这是不是最好的方法。

另外,用户选择的文件名必须以".html"结尾,以便bs4解析工作。

python html python-3.x beautifulsoup subprocess
1个回答
0
投票

我的建议是使用像pexpect这样的子进程模块。这允许你在用户与它交互时控制你的子进程(读写和插入)。同样,我也会切换到终端编辑器(或者直接使用终端本身)。这个想法是,编辑器需要在用户关闭后,将文件写入保存的stdout。你可能需要为此写一个自定义函数。一般来说,你需要让子进程回传文件被保存了,以及它被保存在哪里;而要做到这一点,而不强迫你的用户告诉你,将需要一个友好的编辑器。

© www.soinside.com 2019 - 2024. All rights reserved.