मेरा कोड PDF की एक निर्देशिका को परिमार्जन करने, उन PDF में एम्बेड किए गए वेबलिंक्स को डाउनलोड करने और क्रमिक रूप से उपयुक्त फ़ाइल एक्सटेंशन के साथ नाम देने के लिए सही ढंग से काम कर रहा है।

कहा जा रहा है - मुझे कुछ यादृच्छिक फाइलें मिल रही हैं जो डाउनलोड होती हैं लेकिन उनके साथ कोई एक्सटेंशन नहीं जुड़ा होता है। गुणवत्ता जांच करने में, मेरे पास वे सभी अनुलग्नक हैं जो मायने रखते हैं - ये अतिरिक्त फ़ाइलें वास्तव में कचरा हैं।

क्या उन्हें डाउनलोड न करने या कोड में चेक इन बनाने का कोई तरीका है ताकि मैं इन प्रेत फ़ाइलों के साथ समाप्त न हो जाऊं?

#!/usr/bin/env python3
import os
import glob
import pdfx
import wget
import urllib.parse
import requests

## Accessing and Creating Six Digit File Code
pdf_dir = "./"
pdf_files = glob.glob("%s/*.pdf" % pdf_dir)

for file in pdf_files:
    ## Identify File Name and Limit to Digits
    filename = os.path.basename(file)
    newname = filename[0:6]
    
    ## Run PDFX to identify and download links
    pdf = pdfx.PDFx(filename)
    url_list = pdf.get_references_as_dict()
    attachment_counter = (1)

    for x in url_list["url"]:
        if x[0:4] == "http":
            parsed_url = urllib.parse.quote(x)
            extension = os.path.splitext(x)[1]
            r = requests.get(x)
            with open('temporary', 'wb') as f:
                f.write(r.content)

            ##Concatenate File Name Once Downloaded
            os.rename('./temporary', str(newname) + '_attach' + str(attachment_counter) + str(extension))
            
            ##Increase Attachment Count
            attachment_counter += 1
    
    for x in url_list["pdf"]:
            parsed_url = urllib.parse.quote(x)
            extension = os.path.splitext(x)[1]
            r = requests.get(x)
            with open('temporary', 'wb') as f:
                f.write(r.content)

            ##Concatenate File Name Once Downloaded
            os.rename('./temporary', str(newname) + '_attach' + str(attachment_counter) + str(extension))
            
            ##Increase Attachment Count
            attachment_counter += 1
1
jss3000 17 जुलाई 2020, 19:02

1 उत्तर

सबसे बढ़िया उत्तर

यह स्पष्ट नहीं है कि आपके कोड का कौन सा भाग इन "प्रेत" फ़ाइलों को उत्पन्न करता है, लेकिन आप कहीं भी ऐसी फ़ाइल डाउनलोड करने से बचना चाहते हैं जिसमें एक्सटेंशन नहीं है, आप डाउनलोड को सशर्त बना सकते हैं। यदि अंतिम स्लैश के बाद के घटक में कोई बिंदु नहीं है, तो कुछ भी न करें।

        if '.' in x.split('/')[-1]:
            ... dowload(x) etc
1
tripleee 17 जुलाई 2020, 22:58