我想执行一段代码,这段代码可以从以下地方访问 联系.该代码的目的是读取并提取出 pdf
注释。
但是,我不知道如何引导这个 pdf
使用argparse的文件路径,我猜想,应该是以下内容 argparse
.
p.add_argument("input", metavar="INFILE", type=argparse.FileType("rb"),
help="PDF files to process", nargs='+')
比如,我知道pdf文件的绝对路径如下。
C:\abc.pdf
另外,鉴于我还在努力理解代码,所以我想避免重复输入路径C:/abc.pdf。是否有办法,我可以临时将其硬编码在 def parse_args()
我已经阅读了几个线程关于这个主题,但是,仍然有困难在理解这个问题。
先谢谢你的任何见解。
如果你是在命令提示符下运行pdfannots.py,那么你可以这样做,例如。
python pdfannots.py C:\abc.pdf
如果你想在多个PDF文件上运行它,那么你可以这样做,例如,。
python pdfannots.py C:\abc.pdf D:\xyz.pdf E:\foo.pdf
如果你真的想对路径进行硬编码,你将不得不编辑pdfannots.py,如下所示。
def parse_args():
p = argparse.ArgumentParser(description=__doc__)
# p.add_argument("input", metavar="INFILE", type=argparse.FileType("rb"),
# help="PDF files to process", nargs='+')
g = p.add_argument_group('Basic options')
g.add_argument("-p", "--progress", default=False, action="store_true",
help="emit progress information")
g.add_argument("-o", metavar="OUTFILE", type=argparse.FileType("w"), dest="output",
default=sys.stdout, help="output file (default is stdout)")
g.add_argument("-n", "--cols", default=2, type=int, metavar="COLS", dest="cols",
help="number of columns per page in the document (default: 2)")
g = p.add_argument_group('Options controlling output format')
allsects = ["highlights", "comments", "nits"]
g.add_argument("-s", "--sections", metavar="SEC", nargs="*",
choices=allsects, default=allsects,
help=("sections to emit (default: %s)" % ', '.join(allsects)))
g.add_argument("--no-group", dest="group", default=True, action="store_false",
help="emit annotations in order, don't group into sections")
g.add_argument("--print-filename", dest="printfilename", default=False, action="store_true",
help="print the filename when it has annotations")
g.add_argument("-w", "--wrap", metavar="COLS", type=int,
help="wrap text at this many output columns")
return p.parse_args()
def main():
args = parse_args()
global COLUMNS_PER_PAGE
COLUMNS_PER_PAGE = args.cols
for file in [open(r"C:\Users\jezequiel\Desktop\Timeline.pdf", "rb")]:
(annots, outlines) = process_file(file, args.progress)
pp = PrettyPrinter(outlines, args.wrap)
if args.printfilename and annots:
print("# File: '%s'\n" % file.name)
if args.group:
pp.printall_grouped(args.sections, annots, args.output)
else:
pp.printall(annots, args.output)
return 0
你把参数添加到一个解析器中。
import argparse
p = argparse.ArgumentParser()
p.add_argument("input", metavar="INFILE", type=argparse.FileType("rb"),
help="PDF files to process", nargs='+')
args = p.parse_args()
然后 args.input
将是一个或多个打开的文件句柄的元组。