pywintypes.com_error: (-2147352567, '發生意外 解決方案 :出現在Python呼叫WPS中
這幾日做了一個小程式,主要功能是使用win32com庫呼叫WPS,並運用一些簡單的二次開發指令,實現檔案格式的轉換並另存為新檔案。
大致程式碼如下:
import win32com import win32com.client w=win32com.client.constants wps=win32com.client.gencache.('kwps.application') d=wps.Documents.Open(r'C:\Users\asus\Desktop\project\文件2.docx') d.SaveAs2(FileName=r'C:\Users\asus\Desktop\project\文件文字.txt',FileFormat=w.wdFormatText )
程式執行報錯:
pywintypes.com_error: (-2147352567, '發生意外。', (0, 'Kingsoft WPS', '文件儲存失敗。', '', 3011, -2147467259), None)
在網上找了很久,最後在一個部落格裡看到有人使用了
win32com.client.gencache.EnsureDispatch
載入了WPS,便在我的程式中使用了,不過那位博主也提出:“不知道解決的原因是什麼。”我在使用了EnsureDispatch後,問題也湊巧得到了“解決”(繼續看下去),程式碼如下:
import win32com import win32com.client w=win32com.client.constants wps=win32com.client.gencache.EnsureDispatch('kwps.application') d=wps.Documents.Open(r'C:\Users\asus\Desktop\project\文件2.docx') d.SaveAs2(FileName=r'C:\Users\asus\Desktop\project\文件文字.txt',FileFormat=w.wdFormatText )
出於某種好運,檔案被成功儲存了。我以為問題就解決了呢,直到程式已經提交,今天思考並嘗試才發現:問題壓根就沒被解決。
經過我的反覆嘗試,我發現:
問題的出現原因並不是接入的方式或者其他什麼原因,而是一個很簡單的原因:當前程式沒有對目標檔案的支配許可權。也就是說,我們掛載的WPS並沒有許可權去另存為這個被開啟的文件。繼續深究,原因很簡單也很可笑:
之前開啟的WPS尚未被關閉。
這個時候,出現問題是很自然的事情了。在採用EnsureDispatch的同時,我恰巧手動關閉了WPS的程序,再發現執行成功後也沒有再試,而是繼續編寫了後續關閉掛載程式的函式,所以問題也就再沒有出現過……以至於我認為它“解決了”。
附上關閉WPS的程式碼:
def closesoft():
print('''掛載程式關閉中……
''')
import win32com
import win32com.client
wc=win32com.client.constants
try:
wps=win32com.client.gencache.EnsureDispatch('kwps.application')
except:
wps=win32com.client.gencache.EnsureDispatch('wps.application')
else:
wps=win32com.client.gencache.EnsureDispatch('word.application')
try:
wps.Documents.Close()
wps.Documents.Close(wc.wdDoNotSaveChanges)
wps.Quit
except:pass
它可以關閉兩種WPS和MS WORD,稍加修改也可以關閉PPT和ET。
雖然最後並不真的影響程式使用,但問題依然存在,記下來,各位以後可以知道原因。
相關推薦
pywintypes.com_error: (-2147352567, '發生意外 解決方案 :出現在Python呼叫WPS中
這幾日做了一個小程式,主要功能是使用win32com庫呼叫WPS,並運用一些簡單的二次開發指令,實現檔案格式的轉換並另存為新檔案。 大致程式碼如下:import win32com import win32com.client w=win32com.client.consta
解決方案:hbase資料遷移發生ERROR: Unknown table錯誤
轉載自:m.blog.csdn.net/blog/jiangheng0535/10387167 以下是文章的原文: 說明:網上眾多千篇一律的版本都說要用到一個add_table.rb的檔案,可是我的版本根本hbase下就不存在這個檔案。 1.把資料表test從hbase
零售行業BI解決方案:就連神秘的新零售也亟需
load 分享 power 接受 website 零售行業 pic 開發部署 ref 隨著物質水平的提高,人們的品味也在隨之增高。品質走高,消費升級,零售行業在近些年迅猛發展,更叠換代。從實體店線下零售到線上零售,再到今天新概念新零售,零售業在變得越來越智能。
0512日重點:淘寶的H5手機端自適應解決方案:Flexible
自動獲取 手機端 issue 解決方案 target 解決 flex get bsp 參考文檔: https://github.com/amfe/lib-flexible https://github.com/amfe/article/issues/17 自我總結:F
C#進階系列——WebApi 跨域問題解決方案:CORS
dea ati ice pro target default 異常 測試工具 復雜 前言:上篇總結了下WebApi的接口測試工具的使用,這篇接著來看看WebAPI的另一個常見問題:跨域問題。本篇主要從實例的角度分享下CORS解決跨域問題一些細節。 WebApi系列文章
C#進階系列——WebApi 身份認證解決方案:Basic基礎認證
str 常見 bre 這一 dex ace timeout ticket 結合 閱讀目錄 一、為什麽需要身份認證 二、Basic基礎認證的原理解析 1、常見的認證方式 2、Basic基礎認證原理 三、Basic基礎認證的代碼示例 1、登錄過程 2、/Home/I
【ansible】Windows開啟遠程控制錯誤解決方案:無法檢查防火墻狀態
contain ret turn nbsp windows wall 解決方案 itl wrapper 這個在老版本的Windows系統才有這種bug。例如Windows 2008 R2和Windows 7,如果你的系統的阿裏雲的Windows server 2
外顯子分析彈錯解決方案:Exception in thread "main" picard.PicardException: New reference sequence does not contain a matching contig for NC_007605
clear except -c 解決 als index false quest div 最近從公共數據庫下載了一堆bam文件和reference 基因組文件,重新分析外顯子流程時,跑出了“Exception in thread "main" picard.Pi
外顯子分析彈錯解決方案:Invalid command line: Cannot process the provided BAM/CRAM file(s) because they were not indexed.
highlight exe line light logs mtools and cannot not in 出現這種問題說明bam/cram文件沒有進行index. Samtool能解決這個問題,以bam文件為例,輸入以下命令行即可解決問題: /path/to/y
MYSQL問題解決方案:Access denied for user 'root'@'localhost' (using password:YES)
program 重啟 user 輸入 update tables 令行 mda 連接 這兩天在MyEclipse中開發Web項目時,連接MYSQL數據庫,出現問題:Access denied for user ‘root‘@‘localhost‘ (using passwo
教程 | Kaggle網站流量預測任務第一名解決方案:從模型到代碼詳解時序預測
abs rdf reg lock 集成 deep 月份 current 均值 https://mp.weixin.qq.com/s/JwRXBNmXBaQM2GK6BDRqMw 選自GitHub 作者:Artur Suilin 機器之心編譯 參與:蔣思源、路雪、黃小天
Android Studio更改工程名異常解決方案 :can't rename root module
包括 extern ext 相關 文件名 post roo 手動 修改文件 在修改Android Studio 中 project的名字時 ,提示 “can’t rename root module”。 這是因為Android S
C# 無法恢復到按鈕設置好的BackColor?只能恢復到Control BackColor(例如灰色)的解決方案:
clas blog post cor span icon div ren 當前 C# 無法恢復到按鈕設置好的BackColor? 只能恢復到Control BackColor(例如灰色)的解決方案: //定義一個顏色 Color currentbtBac
MYSQL高可用解決方案:PHXSQL(騰訊微信)編譯實錄
mysql phxsql [root@king01 ~]# rpm -ivh epel-release-6-8.noarch.rpm[root@king01 ~]# yum install -y automake zlib autoconf cmake gcc libtool ncurses ncur
MYSQL讀寫分離解決方案:MariaDB MaxScale部署實錄
maxscaleMASTER(KING01)[root@king01 ~]# mysql -uroot -pabcd.1234 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 173 S
MYSQL讀寫分離解決方案:MYCAT部署實錄
mysql mycat 讀寫分離 MASTER (KING01)[root@king01 ~]# mysql -uroot -pabcd.1234 mysql> show master status; +------------------+----------+--------------
Oracle數據庫容災解決方案:Oracle DataGuard部署實錄
oracle dataguardSQL> alter database force logging; Database altered. SQL> col force_logging for a15 SQL> select force_logging from v$database; FO
開源監控解決方案:ZABBIX部署實錄
lamp zabbix 安裝 Apache HTTP Server [root@king01 ~]# groupadd apache [root@king01 ~]# useradd apache -g apache -s /bin/nologin[root@king01 ~]# tar zxvf a
開源監控解決方案:Observium部署實錄
lamp observium snmp [root@king01 ~]# rpm -ivh https://mirror.webtatic.com/yum/el6/latest.rpm [root@king01 ~]# rpm -ivh epel-release-6-8.noarch.rpm [
開源監控解決方案:Icinga(Nagios)部署實錄
apache mysql nagios [root@king01 ~]# rpm -ivh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm [root@king01 ~]# yum install -y mysql-