第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如果 docx 文件已打開(kāi),則將其關(guān)閉

如果 docx 文件已打開(kāi),則將其關(guān)閉

我正在使用docx 文件并為了防止出現(xiàn)PermissionError: [Errno 13] Permission denied錯(cuò)誤,我嘗試添加os.close()代碼,但正如我所見(jiàn),它不接受文件路徑,它接受文件描述符作為參數(shù)。所以我嘗試了:file_path = 'my file path'mydoc = docx.Document()mydoc.add_paragraph('text')try:    mydoc.save(file_path)    returnexcept PermissionError:    fd = os.open(file_path, os.O_WRONLY)    os.close(fd)    mydoc.save(file_path)    returnPermissionError但是當(dāng)我運(yùn)行它時(shí),由于錯(cuò)誤處理,它會(huì)傳遞第一個(gè)錯(cuò)誤,但是當(dāng)它嘗試執(zhí)行時(shí)fd = os.open(file_path, os.O_WRONLY),我得到了相同的錯(cuò)誤。那么,如果docx 文件已打開(kāi),是否有可能關(guān)閉它?
查看完整描述

4 回答

?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊

中不存在“打開(kāi)”文件這樣的東西python-docx。當(dāng)您讀入文件并使用 進(jìn)行編輯時(shí)document = Document("my-file.docx"),python-docx讀入文件即可。是的,在讀入時(shí)它會(huì)打開(kāi)一瞬間,但不會(huì)保持打開(kāi)狀態(tài)。打開(kāi)/關(guān)閉循環(huán)在Document()調(diào)用返回之前結(jié)束。

保存文件時(shí)也是如此。當(dāng)您調(diào)用 時(shí)document.save("my-output-file.docx"),文件將被打開(kāi)、寫(xiě)入和關(guān)閉,所有這些都在該.save()方法返回之前進(jìn)行。

因此,它與 Word 本身不同,您打開(kāi)一個(gè)文件,處理一段時(shí)間,然后保存并關(guān)閉它。您只需將“起始”文件讀入內(nèi)存,對(duì)該內(nèi)存中的對(duì)象進(jìn)行更改,然后寫(xiě)入內(nèi)存中的表示(幾乎總是寫(xiě)入不同的文件)。

評(píng)論都在正確的軌道上。查找權(quán)限問(wèn)題,不允許您在未連接到打開(kāi)文件的位置寫(xiě)入文件,除非您在程序運(yùn)行時(shí)在 Word 或其他內(nèi)容中打開(kāi)了相關(guān)文件。


查看完整回答
反對(duì) 回復(fù) 2023-07-18
?
LEATH

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊

python-docx 可以從所謂的類(lèi)文件對(duì)象打開(kāi)文檔。它還可以保存到類(lèi)似文件的對(duì)象。當(dāng)您想要通過(guò)網(wǎng)絡(luò)連接或從數(shù)據(jù)庫(kù)獲取源或目標(biāo)文檔并且不想(或不允許)與文件系統(tǒng)交互時(shí),這會(huì)很方便。實(shí)際上,這意味著您可以傳遞打開(kāi)的文件或 StringIO/BytesIO 流對(duì)象來(lái)打開(kāi)或保存文檔,如下所示:


f = open('foobar.docx', 'rb')

document = Document(f)

f.close()


# or


with open('foobar.docx', 'rb') as f:

    source_stream = StringIO(f.read())

document = Document(source_stream)

source_stream.close()

...

target_stream = StringIO()

document.save(target_stream)


查看完整回答
反對(duì) 回復(fù) 2023-07-18
?
交互式愛(ài)情

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊

我嘗試通過(guò)顯示一些代碼來(lái)添加其他人的解釋。


file_path = 'my file path'

mydoc = docx.Document()

mydoc.add_paragraph('text')

hasError = False

try:

    fd = open(file_path)

    fd.close()

    mydoc.save(file_path)

except PermissionError:

    raise Exception("oh no some other process is using the file or you don't have access to the file, try again when the other process has closed the file")

    hasError = True

finally:

    if not hasError:

        mydoc.save(file_path)

return


查看完整回答
反對(duì) 回復(fù) 2023-07-18
?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

如果使用 Python 打開(kāi) doc/docx 文件,則關(guān)閉 該文件 1. 保存 doc/docx 文件 2. 關(guān)閉 doc/docx 文件 3. 退出 Word 應(yīng)用程序


from win32com import client as wc

w = wc.Dispatch('Word.Application')

doc = w.Documents.Open(file_path)

doc.SaveAs("Savefilename_docx.docx", 16)

doc.Close()

w.Quit()


查看完整回答
反對(duì) 回復(fù) 2023-07-18
  • 4 回答
  • 0 關(guān)注
  • 344 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)