python 3.x - Appending tuple to an empty list -
अगर __name__ == '__main__': website_path = GetValid डायरेक्टरी ("वेबसाइट का पथ दर्ज करें:") websitelink_list = [] # लिंक्स के स्रोत लिंक की जानकारी प्रिंट (websitelink_list) htmlfiles = #] #LL फ़ाइलों की सूची हम dirname, subdir_list, oswalk (website_path) में file_list के लिए साइट पर लिखे हैं: file_list में फ़ाइल के लिए: # फ़ाइल एक्सटेंशन की जांच करें। केवल .html फ़ाइल नाम, फाइल का विश्लेषण करें, fileext = os.path.splitext (फ़ाइल) यदि fileext == ".html": relative_file = MakeFullPath (dirname, फ़ाइल) full_file = os.path.realpath (relative_file) htmlfiles.append ( (Full_file, relative_file)) filelinks = fileLinkTuples (dirname, file) प्रिंट (फाइललिंक्स) websitelink_list.extend (filelinks) # फाइलें जो उनके पास कोई लिंक नहीं है। फ़ंक्शंस:
डीईएफ़ GetValid डायरेक्टरी (संकेत: str) - & gt; Str: "" "उपयोगकर्ता से दर्ज की गई एक वैध निर्देशिका देता है। तर्क: संकेत: str - उपयोगकर्ता को एक डायरेक्टरी दर्ज करने के लिए कहा जाने वाला पाठ। रिटर्न: उपयोगकर्ता द्वारा दर्ज की जाने वाली वैध निर्देशिका का स्ट्रिंग। त्रुटियाँ: चेतावनी दिखाता है अगर उपयोगकर्ता कोई मान्य निर्देशिका दर्ज नहीं करता है। "" "सही: प्रयास करें: str_prompt = इनपुट (शीघ्र) prompt_dir = os.path.realpath (str_prompt) ch_dir = os.chdir (str_prompt) IOError को छोड़कर: प्रिंट (" कृपया दर्ज करें एक वैध निर्देशिका ") वापसी prompt_dir def MakeFullPath (पथ: str, filename: str) - & gt; Str: "" "पूर्ण फ़ाइलनाम के लिए पथ और फ़ाइल नाम को जोड़ती है। यदि पथ का अंत नहीं होता है \\ तो यह इसे जोड़ता है तर्क: पथ: str, फ़ाइल का नाम फ़ाइल का नाम: str, फ़ाइल का नाम। फ़ाइल नाम के साथ संमिलित किया जाता है। यदि पथ में बैकस्लैश नहीं होता है, तो पथ में डेटा है अगर कोई पथ में डेटा है। "" "No_data = [] यदि os.listdir (पथ)! = No_data: relative_file = os.path.join (पथ , फ़ाइल नाम) रिटर्न relative_file def FileLinkTuples (पथ: str, फ़ाइल नाम: str) - & gt; सूची: "" "फाइल से लिंक की एक टुप रिटर्न देता है: पथ: str - फ़ाइल नाम का पथ। सापेक्ष पथ हो सकता है। फ़ाइल नाम: str - खोलने और विश्लेषण करने के लिए HTML फ़ाइल का नाम। रिटर्न: ट्यूप्ले की सूची प्रत्येक टपल में 4 मान हैं। HTMLFile - HTML फ़ाइल और स्रोत फ़ाइल के लिए लिंक लिंक पाया गया था। Fulllinkpath - सिस्टम पर लिंक की पूर्ण पथ। कोई रिश्तेदार मार्ग नहीं। Linkpath - लिंक निर्दिष्ट करने के लिए पथ और नाम सापेक्ष पता। फाइल मौजूद है - बूलियन यह इंगित करता है कि पूर्ण लिंक पथ पर फाइल मौजूद है। उदाहरण [(('नमूना \\ index.html', 'C: \\ वेबसाइट विश्लेषण \\ downloads.html', 'downloads.html' , सच)] "" "filelink_list = [] ए = path.split ('\\') बी = os.path.join (एक [-1], फ़ाइल नाम) सी = os.path.realpath (फ़ाइलनाम) अगर ओएस .path.isfile (filename) == "सत्य": filelink_list.append ((b, c, filename, "true")) filelink_list return क्या कोई मेरे कोड का विश्लेषण कर सकता है और बता सकता है मुझे क्यों (full_file, relative_file) और फाइललिंक्स खाली सूचियों में संलग्न नहीं हैं मुख्य कार्यक्रम में?
इस असाइनमेंट के लिए, मुझे एक यूनिटेस्ट दिया गया था। कार्यों ने परीक्षा उत्तीर्ण की, लेकिन मुझे नहीं पता कि मुख्य कार्यक्रम में सूचियों को क्यों अद्यतन नहीं किया जा रहा है?
जब मैं वेबसैटिलिंक_लाइट और htmlfiles प्रिंट करता हूं, वे दोनों खाली हैं।
क्या मैं def filelinktuples के साथ गलत कर रहा हूँ? विशेषकर
अगर os.path.isfile (filename) == "सत्य": filelink_list.append ((b, c, filename, "true")) धन्यवाद
जहां तक मैं बता सकता हूं, आपका कोड Htmlfiles कम से कम मुख्य समस्या यह है कि मैं देख रहा हूं: यदि os.path.isfile (filename) == "सत्य": फ़ंक्शन एक बूलियन देता है , एक स्ट्रिंग नहीं है, इसलिए आपको बूलियन मान True के विरुद्ध जांच करनी चाहिए, या यहां तक कि इसे पूरी तरह से छोड़ देना चाहिए: path.isfile (filename): यह तय करने के बाद, आपको websitelink_list में कुछ भी अपेक्षा करनी चाहिए, बशर्ते आपकी निर्देशिका में वास्तव में *। Html फ़ाइलें शामिल हों। अब, अगर आप htmlfiles में कुछ भी नहीं देख रहे हैं (भले ही निर्देशिका में *। Html फ़ाइलें हों) तो यह कुछ और ही होगा आप यहां नहीं दिखा रहे हैं, क्योंकि यह मेरे कंप्यूटर पर सही तरीके से काम करता है।
Comments
Post a Comment