【问题标题】:Python 3.3, Excel files not saving to current working directoryPython 3.3,Excel 文件未保存到当前工作目录
【发布时间】:2013-11-14 23:11:10
【问题描述】:

我正在运行一个创建工作簿的脚本,将一些数据写入其中然后保存。

在我的脚本结束时,我有:

workbook.SaveAs('tempfile.xlsx')

但是发生的事情是它一直保存到一些不起眼的目录,今天早些时候我从一个共享点站点下载了一个 excel 文件。所以我尝试了:

import os
os.chdir('C:/mydir')

然后我运行脚本,它仍然保存到不起眼的目录中。我在 IDLE 提示符中输入 os.getcwd() 并返回 'C:/mydir.'

无法弄清楚如何正确获得此保存。当我尝试时:

workbook.SaveAs('C:/mydir/tempfile.xlsx')

我收到一个错误:

pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Office         Excel', "Microsoft Office Excel cannot access the file   'C:\\weird dir\\//mydir/FC424E40'. There are several possible reasons:\n\n• The file name or path does not exist.\n• The file is being used by another program.\n• The workbook you are trying to save has the same name as a currently open workbook.", 'C:\\Program Files (x86)\\Microsoft Office\\Office12\\1033\\XLMAIN11.CHM', 0, -2146827284), None)

我知道这可能是一个简单的修复,但我无法弄清楚。有什么想法吗?

【问题讨论】:

  • 你试过workbook.SaveAs(r'C:\mydir\tempfile.xlsx')吗?也许反斜杠会有所帮助......
  • @rodrigo 反斜杠似乎确实有效。谢谢! 'r' 在目录之前有什么作用?没有它,我的代码似乎也能正常工作。
  • @user2941919 反斜杠用于转义 Python 字符串中的某些字符...例如,\t 是制表符,\n 是新行...当纯粹将反斜杠用于反斜杠时,然后你使用r 作为前缀来表示不应该发生的行为

标签: python excel save-as


【解决方案1】:

如果您使用的是 pywintypes(或 pywin32),您必须了解 Excel 如何理解您在其 COM API 上调用的命令。这绝不会链接到 python 执行的当前目录。如果没有当前目录,Excel 将选择一个(使用它自己的“最小意外规则”......),这似乎是您打开 Excel 文件的最后一个目录。正如 rodrigo 建议的那样,您最好使用完整路径来告诉 Excel 在哪里保存。

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    相关资源
    最近更新 更多