我需要對一些pdf文件進行一些操作。作爲第一步,我想將它們從一個目錄複製到支持我需求的樹中。我用下面的代碼爲什麼我不能打開已使用此代碼複製的PDF文件
for doc in docList:
# these steps just create the directory structure I need from the file name
fileName = doc.split('\\')[-1]
ID = fileName.split('_')[0]
basedate = fileName.split('.')[0].split('_')[-1].strip()
rdate = '\\R' + basedate + '-' +'C' + basedate
newID = str(cikDict[ID])
newpath = basePath + newID + rdate
# check existence of the new path
if not os.path.isdir(newpath):
os.makedirs(newpath)
# reads the file in and then writes it to the new directory
fstring = open(doc).read()
outref = open(newpath +'\\' + fileName, 'wb')
outref.write(fstring)
outref.close()
當我運行這個代碼時,目錄被創建並且每個目錄中都有正確名稱的文件。但是,當我點擊打開一個文件時,Acrobat會收到一個錯誤消息,通知我該文件已損壞,無法修復。
我能夠使用
shutil.copy(doc,newpath)
替換最後一個四行復制文件 - 但我一直無法弄清楚,爲什麼我無法讀取該文件作爲一個字符串,然後把它寫在一個新的位置。
有一件事我做的是比較有什麼從源到文件內容是什麼讀取後讀它已被寫入後:
>>> newstring = open(newpath + '\\' +fileName).read()
>>> newstring == fstring
True
所以它不會出現內容被改變?
嘗試'一個fstring =開放(DOC,「RB」)。閱讀()' – dawg
相同的消息,但這次我駁回消息後,該文件沒有打開。這至少是你應該發佈的部分答案,如果你有時間對rb如何產生影響發表評論感謝 – PyNEwbie