【发布时间】:2019-06-26 13:43:30
【问题描述】:
您好,我有一个简单的 python 脚本,它使用 odbc 驱动程序连接到数据库,获取数据帧并存储/覆盖 Excel 文件。当我使用 eclipse 运行脚本时,它工作得很好。但是,当我通过右键单击 .py 文件并使用 py.exe 打开来运行它时,excel 文件不会被覆盖/保存。
最终,我希望其他用户能够安装 python,只需双击 .py 脚本即可更新 excel 文件。有谁知道为什么它不能使用右键单击方法?当我检查时,他们应该都使用相同的解释器。
import pyodbc
import pandas as pd
cnxn = pyodbc.connect('Driver={ODBC Driver (x64)};'
'DSN=MyDSN;'
'Server=ServerAddress;'
'Database=Stuff;')
t1 = "table1"
sql = ("select * " + "from " + t1)
writer = pd.ExcelWriter("MyExcelFile.xlsx")
dframe = pd.read_sql(sql,cnxn)
aggDf = dframe.groupby(['DEPARTMENT']).sum()
dframe.to_excel(writer,"RawSalesData", index = False)
aggDf.to_excel(writer, "SalesStats")
writer.save()
writer.close()
下面是 Jacob 在评论中建议的运行 sys 代码的结果。似乎两种方法都匹配。
sys.version_info(major=3, minor=6, micro=5, releaselevel='final', serial=0)
[
'C:\\Users\\persona\\PythonWorkSpace\\TestPython',
'C:\\Users\\persona\\anaconda3',
'C:\\Users\\persona\\anaconda3\\DLLs',
'C:\\Users\\persona\\anaconda3\\libs',
'C:\\Users\\persona\\anaconda3\\pkgs',
'C:\\Users\\persona\\anaconda3\\conda-meta',
'C:\\Users\\persona\\anaconda3\\envs',
'C:\\Users\\persona\\anaconda3\\etc',
'C:\\Users\\persona\\anaconda3\\include',
'C:\\Users\\persona\\anaconda3\\Lib',
'C:\\Users\\persona\\anaconda3\\Library',
'C:\\Users\\persona\\anaconda3\\man',
'C:\\Users\\persona\\anaconda3\\Menu',
'C:\\Users\\persona\\anaconda3\\Scripts',
'C:\\Users\\persona\\anaconda3\\share',
'C:\\Users\\persona\\anaconda3\\sip',
'C:\\Users\\persona\\anaconda3\\tcl',
'C:\\Users\\persona\\anaconda3\\Tools',
'C:\\WINDOWS\\system32',
'C:\\Users\\persona\\Anaconda3\\python36.zip',
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages',
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages\\win32',
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages\\win32\\lib',
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages\\Pythonwin'
]
^ right click method
--------------------
sys.version_info(major=3, minor=6, micro=5, releaselevel='final', serial=0)
[
'C:\\Users\\persona\\PythonWorkSpace\\TestPython',
'C:\\Users\\persona\\PythonWorkSpace\\TestPython',
'C:\\Users\\persona\\anaconda3',
'C:\\Users\\persona\\anaconda3\\DLLs',
'C:\\Users\\persona\\anaconda3\\libs',
'C:\\Users\\persona\\anaconda3\\pkgs',
'C:\\Users\\persona\\anaconda3\\conda-meta',
'C:\\Users\\persona\\anaconda3\\envs',
'C:\\Users\\persona\\anaconda3\\etc',
'C:\\Users\\persona\\anaconda3\\include',
'C:\\Users\\persona\\anaconda3\\Lib',
'C:\\Users\\persona\\anaconda3\\Library',
'C:\\Users\\persona\\anaconda3\\man',
'C:\\Users\\persona\\anaconda3\\Menu',
'C:\\Users\\persona\\anaconda3\\Scripts',
'C:\\Users\\persona\\anaconda3\\share',
'C:\\Users\\persona\\anaconda3\\sip',
'C:\\Users\\persona\\anaconda3\\tcl',
'C:\\Users\\persona\\anaconda3\\Tools',
'C:\\Program Files\\eclipse',
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages',
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages\\win32',
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages\\win32\\lib',
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages\\Pythonwin',
'C:\\Users\\persona\\Anaconda3\\python36.zip'
]
【问题讨论】:
标签: python excel database pandas pyodbc