मेरे पास एक स्क्रिप्ट है जो मेरे इंटरनेट की डाउनलोड और अपलोड गति प्राप्त करती है। अब मैं एक स्क्रिप्ट बना रहा हूं जो एक txt फ़ाइल से सभी डाउनलोड डेटा एकत्र करता है, और इसे औसत करता है, इसे एक्सेल स्प्रेडशीट, या अन्य चीजों में रखता है। समस्या यह है कि मैं "डाउनलोड:" के लिए स्कैन करने का कोई तरीका नहीं ढूंढ पा रहा हूं क्योंकि स्ट्रिंग में डाउनलोड डेटा भी है। मैं डाउनलोड के साथ सभी तारों की अनुक्रमणिका प्राप्त करने में सक्षम होना चाहता हूं: उनमें और उसके बाद डेटा भी प्राप्त करें।

मैंने शब्दों के लिए स्कैन करने के लिए किसी भी() का उपयोग करने की कोशिश की, लेकिन यह महसूस किया कि यह सिर्फ मुझे बताता है कि क्या तत्व सूची में है और यह भी कि यह केवल तभी जांचा जाता है जब पूरा शब्द "डाउनलोड:" एक स्ट्रिंग के रूप में सूची में था।

downloads_string = "Download: "
with open("file.txt", "r") as file:
    file.readlines()
    data_downloads_list = any(element in downloads_string for element in file)
    print(data_downloads_list)

मुझे सच होने की उम्मीद थी, लेकिन हमेशा झूठी मिली और भी कठिन मैंने डाउनलोड किया था: मेरी txt फ़ाइल में। मुझे एहसास हुआ कि यह उन स्ट्रिंग्स के लिए स्कैन कर रहा था जो डेटा के साथ शब्द वाले स्ट्रिंग्स के बजाय बस "डाउनलोड:" थे।

0
DucklingTurtle 10 नवम्बर 2019, 22:00

1 उत्तर

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

file.readlines() फ़ाइल की पंक्तियों को एक सूची में पढ़ता है और चूंकि इसे कभी भी किसी भी चीज़ को असाइन नहीं किया जाता है, बस कचरा एकत्र हो जाता है ... आपने तर्क भी उलट दिया है (आप यह जांचने की कोशिश कर रहे हैं कि आपकी लाइन स्ट्रिंग में है या नहीं आप ढूंढ रहे हैं - यदि आप जिस स्ट्रिंग की तलाश कर रहे हैं वह लाइन में नहीं है), कोशिश करें:

downloads_string = 'Download: '
with open('file.txt') as file:
    data_downloads_list = [line for line in file if downloads_string in line]
    print(data_downloads_list)
0
Jon Clements 10 नवम्बर 2019, 19:08