我想通過使用PyPdf從文件中提取名稱來重命名pdf文件的列表。我試圖使用for循環來重命名文件,但我總是得到一個錯誤代碼32,說該文件正在被另一個進程使用。我使用python2.7 這裏是我的代碼使用for循環重命名pdf文件的列表
import os, glob
from pyPdf import PdfFileWriter, PdfFileReader
# this function extracts the name of the file
def getName(filepath):
output = PdfFileWriter()
input = PdfFileReader(file(filepath, "rb"))
output.addPage(input.getPage(0))
outputStream = file(filepath + '.txt', 'w')
output.write(outputStream)
outputStream.close()
outText = open(filepath + '.txt', 'rb')
textString = outText.read()
outText.close()
nameStart = textString.find('default">')
nameEnd = textString.find('_SATB', nameStart)
nameEnd2 = textString.find('</rdf:li>', nameStart)
if nameStart:
testName = textString[nameStart+9:nameEnd]
if len(testName) <= 100:
name = testName + '.pdf'
else:
name = textString[nameStart+9:nameEnd2] + '.pdf'
return name
pdfFiles = glob.glob('*.pdf')
m = len(pdfFiles)
for each in pdfFiles:
newName = getName(each)
os.rename(each, newName)
發佈錯誤追溯和請求的時候顯示的行數。 – Feanor
好的。我會這麼做 – Parousia
你在Windows上嗎?是否有人可能會對您嘗試重命名的任何文件擁有打開的文件句柄? – Alfe