【发布时间】:2018-07-23 21:43:37
【问题描述】:
我编写了一个 python 脚本,它使用 tkinter 和 panda 来: 在桌面上选择一个 CSV 文件, 导入该数据, 做一些事情, 将创建的新数据框导出到新的 csv 中。
有没有一种方法可以运行程序而无需人员打开 python IDE 并从那里运行它?
目前,当我尝试单击并运行 tester.py 程序时,我看到 cmd_line(终端)框短暂打开,然后在没有 tkinter 提示或其他任何内容的情况下关闭。
我的目标,或者说我的理想是编写这个程序来帮助非技术同事自动执行一些任务。有没有一种方法可以设置这个程序,让他们点击一个 exe 文件或一个 bat 文件,然后让脚本运行,收集所需的用户输入,然后像我想要的那样输出 csv 文件?
我已经做了一些简短的谷歌搜索,但我无法找到明确的答案。
import tkinter
import csv
import pandas as pd
from tkinter import Tk
from tkinter.filedialog import askopenfilename
Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing
filename = askopenfilename() # show an "Open" dialog box and return the path to the selected file
print(filename)
df1 = pd.read_csv(filename)
df2 = df1.query("STATE != 'NY'") # stores records not in NY
df3 = df1[df1["FIRST_NAME"].str.contains(" ", regex=True)] # stores records that have a space in the first name
dferror = [df2, df3]
dferror = pd.concat(dferror).drop_duplicates().reset_index() # merges dataframes, drops duplicates
dferror.to_csv("C:\errors.csv")
编辑添加我的导入条款
【问题讨论】:
-
您的程序已经可以从 shell 运行(例如,
bash在 macOS 上的Terminal.app或cmd在 Windows 上等)。如果您希望它可以从 GUI 运行……好吧,您似乎在 Windows 上,因此只需将 Windows 资源管理器配置为通过使用 Python 运行它们来打开.py文件,而不是在 IDE 中编辑它们。这确实是超级用户的问题,而不是 Stack Overflow。 -
或者,您可以使用
py2exe或PyInstaller或cx_Freeze之类的东西从您的脚本中创建一个可运行的.exe应用程序。然后,人们可以在资源管理器中双击它,它就会运行你的程序。你也可以让它包含.exe中的所有 Python,这样你的同事甚至不需要安装 Python。如果这就是您想要的方式,请查找这三个项目的教程(也许可以寻找它们的替代品并查找这些替代品的教程),浏览它们,然后看看您想学习和使用哪一个。跨度> -
@Marcus.Aurelianus 调度程序将如何提供帮助?
-
从命令提示符运行它,这样您就有机会看到错误消息 - 这可能类似于“找不到名称'pd'”,因为您忘记导入所有您正在使用的模块。
-
也许我需要改写一下,我完全有可能在错误的论坛上问这个问题。但我的目标是让这个程序完全脱离 GUI 运行(不进入 cmd 行)。我不担心需要查看错误,因为我已经完成了测试并且它正在按预期方式工作。我不希望我的非技术同事能够单击我的 .py 文件或 .exe 文件并运行我的程序。是不是更清楚了?
标签: python