os.getenv( "HOME" ) 在 QFileDialog 创建中有什么用?



正如我在标题中所说,我不明白os.getenv("HOME")在这段代码中所做的事情。我正在一个在线网站上学习一门课程,导师用PyQt5编写了一个类似于记事本的界面。我找了一个答案,但我想他们有点太先进了。我也不知道环境变量是什么。顺便说一句,这是我在堆栈上的第一个问题,所以请原谅我可能犯的错误和信息不足。

def open_file(self):
file_name=QFileDialog.getOpenFileName(self,"Open File",os.getenv("HOME"))
with open(file_name[0],"r") as file:
self.writing_ar.setText(file.read())

上述功能连接到按钮self.open,如self.open.clicked.connect(self.open_file)self.writing_ar是QTextEdit对象

os.getenv('HOME')的情况下,它是一种以UNIX为中心的方式来获取当前用户的主目录,该目录根据POSIX规范存储为环境变量。一个典型的主目录位置是在MacOS上的/Users/yourname,在Linux上是/home/yourname,在Windows上是c:UsersYour Name——所以这就是本文试图查找的内容。

环境变量集实际上是一个键/值存储,将字符串映射到其他字符串,从任何程序复制到它启动的其他进程;因此,它们是在程序之间共享配置和其他信息的一种方式(尽管它只在树下共享信息,只在进程创建时传播;子进程所做的更改不会被其父进程看到;子进程启动后对父进程环境的更改也不会被子进程看到)。

如果您想要在Windows上也能可靠工作的东西,请考虑os.path.expanduser("~")。因此,您的代码可能会变成:

file_name = QFileDialog.getOpenFileName(self,
"Open File",
os.path.expanduser("~"))

另请参阅在Python中获取主目录的正确跨平台方式是什么?

它基本上为您获取一个环境变量,并将其转换为python变量。

根据您共享的代码,应该在操作系统级别定义一个名为HOME的变量。

在Linux中,这可以通过完成

export HOME="something_here"

您可以通过键入来检查该变量是否已实际定义

echo "$HOME"

在终端中。

你可以把CCD_ 8方法想象成";回声";某个变量的参数值。

相关内容

  • 没有找到相关文章

最新更新