【demo】【python】在file1中获得一个变量(文件路径),传递到file2中
目录
功能
在file1中获得一个变量(文件路径),传递到file2中
方法1:在程序路径下写入.txt文件
file1:
#coding=utf-8
#file1
from PyQt5 import QtWidgets, QtCore
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.button = QtWidgets.QPushButton('选择文件夹', self)
self.button.setGeometry(QtCore.QRect(100, 30, 200, 50))
self.button.clicked.connect(self.select_folder)
def select_folder(self):
folder_path = QtWidgets.QFileDialog.getExistingDirectory(self, '选择文件夹')
print('选择的文件夹路径为:', folder_path)
# 保存所选路径
with open('folder_path.txt', 'w') as f:
f.write(folder_path)
if __name__ == '__main__':
app = QtWidgets.QApplication([])
window = MainWindow()
window.show()
app.exec_()
创建了一个 MainWindow 类,并在窗口中添加了一个按钮来选择文件夹。单击按钮后,使用 QFileDialog 弹出对话框来选择文件夹路径,并把路径打印到控制台上。
file2:
#coding=utf-8
# file2.py
import file1
import os
# 获取所需路径
with open('folder_path.txt', 'r') as f:
folder_path = f.read()
# 加上"设计结果"文件夹的路径
design_folder_path = os.path.join(folder_path, '设计结果')
print('设计结果文件夹路径为:', design_folder_path)
将程序 1 中选择的文件夹路径写入文件或者环境变量中,在程序 2 中访问文件或者环境变量即可。
效果

方法2:在程序路径下写入环境变量中
file1:
import os
from PyQt5 import QtWidgets, QtCore
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.button = QtWidgets.QPushButton('选择文件夹', self)
self.button.setGeometry(QtCore.QRect(100, 30, 200, 50))
self.button.clicked.connect(self.select_folder)
def select_folder(self):
folder_path = QtWidgets.QFileDialog.getExistingDirectory(self, '选择文件夹')
print('选择的文件夹路径为:', folder_path)
# 将所选路径写入系统环境变量
os.environ['FOLDER_PATH'] = folder_path
if __name__ == '__main__':
app = QtWidgets.QApplication([])
window = MainWindow()
window.show()
app.exec_()
使用 os.environ 字典将 folder_path 路径写入了名为 FOLDER_PATH 的系统环境变量中。
然后,你可以在程序 2 中使用 os.environ 字典访问该环境变量,以获取所需的路径
file2:
import os
# 获取所需路径
folder_path2 = os.environ.get('FOLDER_PATH')
print("文件夹路径为:", folder_path2)
# 加上 "设计结果" 文件夹的路径
design_folder_path = os.path.join(folder_path2, '设计结果')
print('设计结果文件夹路径为:', design_folder_path)
这段程序使用 os.environ.get() 方法获取名为 FOLDER_PATH 的环境变量,并将其存储在 folder_path2 变量中。然后,程序将使用 os.path.join() 方法将 FOLDER_PATH 路径与“设计结果”文件夹路径合并,以获取完整路径,并将其存储在名为 design_folder_path 的变量中。最后,程序将打印出完整的设计结果文件夹路径。
两种方法有何区别、利弊
区别
使用系统环境变量可以在应用程序之间共享数据。此外,环境变量的特殊之处在于它们在首次启动进程时由操作系统加载,因此在应用程序中可用。
另一方面,将数据保存到文件中可以轻松地跨程序和系统操作。文件通常更为灵活,因为可以直接编辑、删除或者替换文件,而无需调用特殊 API 或者系统功能。
使用系统环境变量的优缺点:
优点:
环境变量在各个进程中都可用,可以用于跨程序或系统操作。
环境变量与操作系统集成紧密,可以快速访问和修改。
在使用大量变量时,环境变量可以更有效地使用内存。
缺点:
需要使用操作系统或库功能来创建、修改或删除环境变量。
环境变量可能会被其他应用程序或系统配置修改或覆盖。
将数据存储到文件中的优缺点:
优点:
存储到文件中的数据可以轻松地与其他程序或系统交互,因为文件具有平台无关性。
可以快速访问和修改文件,而无需特殊 API 或系统功能。
存储到文件中的数据可以在不同计算机之间共享。
缺点:
在使用多个变量时,存储到文件中的方法可能会占用更多的磁盘空间。
为更新数据,需要打开、修改、保存和关闭文件,这可能需要更多的时间和代码。
总之,通过比较应用程序的需求和要求,以及考虑操作的复杂性和风险,可以选择最适合和方便的方法来传递和共享所需的数据。
更多推荐


所有评论(0)