python:argv[0]、path[0]以及__file__区别与简单应用

#coding=utf-8
import sys
import os
'''
以绝对路径运行脚本时:
'''
print('{0}:{1}'.format("sys.argv[0]",sys.argv[0]))
print('{0}:{1}'.format("sys.path[0]",sys.path[0]))
print('{0}:{1}'.format("os.getcwd()",os.getcwd()))

结果:

分析:

sys里提供的

argv[0]:提供执行脚本运行时的路径(因为以绝对路径运行脚本于是打印出来的是脚本的绝对路径)

path[0]:提供执行脚本目录

os.getcwd()同sys.path[0]

help(sys)也可以找到下面的说明

接下来看以相对路径执行脚本时:

#coding=utf-8
import sys
import os
'''
以相对路径运行脚本时:
'''
print('{0}:{1}'.format("sys.argv[0]",sys.argv[0]))
print('{0}:{1}'.format("sys.path[0]",sys.path[0]))
print('{0}:{1}'.format("os.getcwd()",os.getcwd()))

结果:

发现sys.argv[0]有变化其余不变

 

接下来再看一个"__file__"

#coding=utf-8
import sys
import os
'''
分别以以相对路径运行脚本时:
'''
print('{0}:{1}'.format("__file__",__file__))

结果:

发现它的效果与sys.argv[0]一致

 

 

综上:

一般情况下:

sys.argv[0]同__file__

os.getcwd()同sys.path[0]

当想获取脚本的绝对路径时,可以用以下方法:

os.path.abspath(__file__)

os.path.abspath(sys.argv[0])

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你给出的代码片段是一个打开单个图片文件并在GUI界面上显示的函数。如果要修改代码以一次性打开五张图片,你需要在`open_image`函数中进行一些更改。 以下是一个修改后的代码,可以一次性打开五张图片并在GUI界面上显示: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QFileDialog from PyQt5.QtGui import QPixmap class ImageWidget(QWidget): def __init__(self, image_path): super().__init__() self.label = QLabel(self) pixmap = QPixmap(image_path) self.label.setPixmap(pixmap) layout = QVBoxLayout(self) layout.addWidget(self.label) class MainWindow(QWidget): def __init__(self): super().__init__() self.layout = QVBoxLayout(self) self.image_widgets = [] self.open_images() def open_images(self): file_dialog = QFileDialog() file_paths, _ = file_dialog.getOpenFileNames(self, "选择图片", "", "Image Files (*.png *.jpg *.jpeg)") for file_path in file_paths: self.display_image(file_path) def display_image(self, image_path): image_widget = ImageWidget(image_path) self.image_widgets.append(image_widget) self.layout.addWidget(image_widget) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 这个代码中,我们新建了一个`MainWindow`类,它继承自`QWidget`。在`MainWindow`类的初始化方法中,我们创建了一个垂直布局,并创建了一个空列表`image_widgets`来存储所有打开的图片的`ImageWidget`实例。 我们也创建了一个新的`open_images`方法,它与之前的`open_image`方法相似,但它可以打开多个图片文件并显示它们。在`open_images`方法中,我们使用`getOpenFileNames`方法来获取多个文件的路径,然后对每个文件路径调用`display_image`方法来显示它们。 在`display_image`方法中,我们创建一个新的`ImageWidget`实例,将它添加到`image_widgets`列表中,并将它添加到`MainWindow`的垂直布局中。 最后,我们创建了一个`app`实例并将`MainWindow`实例显示出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值