プログラミング初心者です。
大変基礎的な内容かもしれませんが、質問させてください。
あるツールのDownloads配下のフォルダでインストールを実行(pip3 install package)しました。
Downloads配下のフォルダへのインストール後、usr/local/bin配下にも同じ名前のファイルが自動的にインストールされることを確認し、
下記のように、インストール場所が異なる同じファイル名のdumppdf.pyのファイル中身を確認しましたが、両ファイルの中身が違いました。
なぜ、同じファイル名にもかかわらず中身が異なるのでしょうか?
加えて、新しいバージョンのdumppdf.pyを更新したい場合、どのようにしてlocal配下のファイルにも更新することが可能でしょうか?
お分かりになる方、ご教授いただけると幸いです。
pdfminer.sixのset.py↓
from setuptools import setup from os import path import pdfminer as package with open(path.join(path.abspath(path.dirname(__file__)), 'README.md')) as f: readme = f.read() setup( name='pdfminer.six', version=package.__version__, packages=['pdfminer'], package_data={'pdfminer': ['cmap/*.pickle.gz']}, install_requires=[ 'chardet ; python_version > "3.0"', 'pycryptodome', 'sortedcontainers', ], extras_require={ "dev": ["nose", "tox"], "docs": ["sphinx", "sphinx-argparse"], }, description='PDF parser and analyzer', long_description=readme, long_description_content_type='text/markdown', license='MIT/X', author='Yusuke Shinyama + Philippe Guglielmetti', author_email='pdfminer@goulu.net', url='https://github.com/pdfminer/pdfminer.six', scripts=[ 'tools/pdf2txt.py', 'tools/dumppdf.py', ], keywords=[ 'pdf parser', 'pdf converter', 'layout analysis', 'text mining', ], python_requires='>=3.4', classifiers=[ 'Programming Language :: Python', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3 :: Only', 'Development Status :: 5 - Production/Stable', 'Environment :: Console', 'Intended Audience :: Developers', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: MIT License', 'Topic :: Text Processing', ], )
pdfminer3kminerのset.py↓
import setuptools with open("README.md", "r") as fh: long_description = fh.read() setuptools.setup( name="pdfminer3k", version="1.3.4", author="Serhat Can", author_email="author@example.com", description="Forked from original pdfminer", long_description=long_description, long_description_content_type="text/markdown", url="https://github.com/canserhat77/pdfminer3k", download_url="https://github.com/canserhat77/pdfminer3k/archive/v1.3.4.tar.gz", packages=setuptools.find_packages(), classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], install_requires=[ 'ply', ], python_requires='>=3.6', )
Downloads配下↓
#!/usr/bin/env python3 """Extract pdf structure in XML format""" import logging import os.path import re import sys import warnings from argparse import ArgumentParser import pdfminer from pdfminer.pdfdocument import PDFDocument, PDFNoOutlines, PDFXRefFallback, \ PDFNoValidXRefWarning from pdfminer.pdfpage import PDFPage from pdfminer.pdfparser import PDFParser from pdfminer.pdftypes import PDFObjectNotFound, PDFValueError from pdfminer.pdftypes import PDFStream, PDFObjRef, resolve1, stream_value from pdfminer.psparser import PSKeyword, PSLiteral, LIT from pdfminer.utils import isnumber logging.basicConfig() ESC_PAT = re.compile(r'[\000-\037&<>()"\042\047\134\177-\377]') def e(s): if isinstance(s, bytes): s = str(s, 'latin-1') return ESC_PAT.sub(lambda m: '&#%d;' % ord(m.group(0)), s)
usr/local/bin配下↓
#!/usr/local/opt/python/bin/python3.7 # # dumppdf.py - dump pdf contents in XML format. # # usage: dumppdf.py [options] [files ...] # options: # -i objid : object id # import sys, os.path, re from io import StringIO from pdfminer.psparser import PSKeyword, PSLiteral, LIT from pdfminer.pdfparser import PDFParser from pdfminer.pdfdocument import PDFDocument, PDFNoOutlines from pdfminer.pdftypes import PDFObjectNotFound, PDFValueError from pdfminer.pdftypes import PDFStream, PDFObjRef, resolve1, stream_value from pdfminer.pdfpage import PDFPage from pdfminer.utils import isnumber, q ESCAPE = set(map(ord, '&<>"')) def encode(data): buf = StringIO() for b in data: if b < 32 or 127 <= b or b in ESCAPE: buf.write(f'&#{b};') else: buf.write(chr(b)) return buf.getvalue()
回答2件
あなたの回答
tips
プレビュー