-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.py
More file actions
67 lines (58 loc) · 2.05 KB
/
Copy pathtest.py
File metadata and controls
67 lines (58 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import os,PyPDF2,pyperclip
pathofcwd = r"D:\junming zheng\CloudStation\..."
# ^ 需要处理的pdf存放位置
class pdfReader:
# ^ 处理pdf的一个类,把和pdf处理有关的代码都放在这里了
blankPdfPath = r'D:\junming zheng\smallToolsGit\smallTools\pdfSmallTools\blank.pdf'
# ^ 空白页pdf存放位置
def __init__(self,pdfPath):
self.pdfPath = pdfPath
self.blankPageFile, self.blankPage = self.openAndReadit(self.blankPdfPath)
self.pdfFile, self.pdfReader = self.openAndReadit(self.pdfPath)
def openAndReadit(self,pdfpath):
"""
generate the pdfReader object for given path in parameter
"""
pdfFile = open(pdfpath, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFile)
return (pdfFile,pdfReader)
def appendBlank(self):
"""
no para, return a pdf writer with blankPage appended
"""
pdfWriter = PyPDF2.PdfFileWriter()
for pageNum in range(self.pdfReader.numPages):
pageObj = self.pdfReader.getPage(pageNum)
pdfWriter.addPage(pageObj)
# add the blank page:
pdfWriter.addPage(self.blankPage.getPage(0))
return pdfWriter
def closeAllFile(self):
self.blankPageFile.close()
self.pdfFile.close()
os.chdir(pathofcwd)
fileList = os.listdir()
pdfList = filter(
lambda e:os.path.splitext(e)[1]=='.pdf',
fileList
)
# ^ 过滤文件列表,只保留pdf
pdfReaderList = map(
lambda e:pdfReader(e),
pdfList
)
# ^ 根据pdf文件路径生成pdfReader类
pdfReaderList = filter(
lambda e: e.pdfReader.numPages % 2 == 1,
pdfReaderList
)
# ^ 只保留奇数页pdf的pdfReader类
pdfReaderList = list(pdfReaderList)
for pdfReader in pdfReaderList:
pdfAddBlankWriter = pdfReader.appendBlank()
outputPath = os.path.splitext(pdfReader.pdfPath)[0]+'_addBlank'+'.pdf'
pdfOutputFile = open(outputPath,'wb')
pdfAddBlankWriter.write(pdfOutputFile)
pdfOutputFile.close()
pdfReader.closeAllFile()
print("preparing to output as:%s" % outputPath)