Kotlin: दिनचर्या का स्वचालन। ऐसी उपयोगिताएँ लिखना जो वास्तव में समय बचाती हैं

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Kotlin में स्वचालन: यह आपके ध्यान के योग्य क्यों है

\n\n

क्या आपने कभी सौ फ़ाइलों का नाम बदलने, लॉग को मैन्युअल रूप से पार्स करने या एक API से दूसरे में डेटा कॉपी करने में एक घंटा बिताया है? परिचित दर्द। आमतौर पर ऐसे कार्यों के लिए हम Python या Bash की ओर रुख करते हैं, लेकिन Kotlin Kotlin में स्वचालन के लिए एक अप्रत्याशित रूप से शक्तिशाली और सुरुचिपूर्ण उपकरण है। यह आधुनिक भाषा की संक्षिप्तता को JVM के प्रदर्शन और Java पारिस्थितिकी तंत्र तक पूर्ण पहुँच के साथ जोड़ता है।

\n\n

इस लेख में हम एक और "Hello, World" नहीं लिखेंगे। हम सीधे मुद्दे पर आएंगे: हम Kotlin कोड उदाहरण देखेंगे जो वास्तव में एक डेवलपर, sysadmin या परीक्षक के दैनिक कार्य में काम आएंगे। आप सीखेंगे कि फ़ाइलों के साथ काम करने, HTTP-अनुरोध भेजने, डेटा पार्स करने और सिस्टम कमांड चलाने के लिए Kotlin स्क्रिप्ट कैसे लिखें। चलिए शुरू करते हैं!

\n\n

Kotlin क्यों, Python या Bash क्यों नहीं?

\n\n

प्रत्येक भाषा का अपना क्षेत्र है। Bash त्वरित एक-लाइनर्स के लिए आदर्श है, Python जटिल तर्क और data science के लिए। लेकिन स्वचालन के लिए Kotlin कई अनूठे लाभ प्रदान करता है:

\n\n
    \n
  • प्रकार सुरक्षा। आपको रनटाइम पर "string vs int" त्रुटि नहीं मिलेगी - कंपाइलर इसे शुरू में ही पकड़ लेगा।
  • \n
  • Java के साथ पूर्ण संगतता। कोई भी Java-लाइब्रेरी (Apache POI, OkHttp, Jackson) बॉक्स से बाहर उपलब्ध है।
  • \n
  • Kotlin Script (.kts)। बिना कंपाइलेशन के स्क्रिप्ट लिखी जा सकती हैं - सामान्य .sh फ़ाइल की तरह चलाएँ।
  • \n
  • संक्षिप्त सिंटैक्स। कम बॉयलरप्लेट कोड, अधिक पठनीयता।
  • \n
\n\n

Kotlin-स्क्रिप्ट के लिए वातावरण सेटअप

\n\n

Kotlin स्क्रिप्ट चलाने के लिए Android Studio स्थापित करने की आवश्यकता नहीं है। पर्याप्त है:

\n\n
    \n
  1. Kotlin कंपाइलर (या SDKMAN) स्थापित करें।
  2. \n
  3. .kts एक्सटेंशन वाली फ़ाइल बनाएँ।
  4. \n
  5. कमांड से चलाएँ: kotlinc -script script.kts
  6. \n
\n\n

हो गया। अब पहली वास्तव में उपयोगी स्क्रिप्ट लिखते हैं।

\n\n

उदाहरण 1: फ़ाइलों का सामूहिक नाम बदलना

\n\n

कल्पना करें: आपके पास फ़ोटो वाला एक फ़ोल्डर है IMG_001.jpg, IMG_002.jpg ... IMG_100.jpg। उन्हें holiday_01.jpg, holiday_02.jpg ... में बदलना है। हाथ से - 10 मिनट। स्क्रिप्ट से - 2 सेकंड।

\n\n
import java.io.File\n\nfun main() {\n    val folder = File("/path/to/photos")\n    val files = folder.listFiles()?.filter { it.extension == "jpg" } ?: return\n\n    files.sorted().forEachIndexed { index, file ->\n        val newName = "holiday_${index.toString().padStart(2, '0')}.jpg"\n        val newFile = File(folder, newName)\n        file.renameTo(newFile)\n        println("Renamed: ${file.name} -> $newName")\n    }\n}\n\n// चलाएँ: kotlinc -script rename.kts
\n\n

यह Kotlin कोड उदाहरण तीन काम करता है: केवल JPG-फ़ाइलों को फ़िल्टर करता है, नाम से सॉर्ट करता है (क्रम न खोने के लिए), और नंबरिंग के साथ नाम बदलता है। padStart पर ध्यान दें - संख्याओं को फ़ॉर्मेट करने के लिए Kotlin की एक सुरुचिपूर्ण सुविधा।

\n\n

उदाहरण 2: HTTP-अनुरोध और JSON पार्सिंग

\n\n

अक्सर वेब-API से डेटा संग्रह को स्वचालित करने की आवश्यकता होती है। मान लीजिए, हम उपयोगकर्ताओं की सूची प्राप्त करते हैं और उन्हें CSV में सहेजते हैं। स्वचालन के लिए Kotlin में यह लाइब्रेरी ktor-client (या पुराने अच्छे java.net.HttpURLConnection) की मदद से कुछ पंक्तियों में किया जाता है।

\n\n

लेकिन स्क्रिप्ट के लिए @file:DependsOn के माध्यम से बाहरी लाइब्रेरी को जोड़ना आसान है:

\n\n
@file:DependsOn("com.google.code.gson:gson:2.10.1")\n@file:DependsOn("io.ktor:ktor-client-core:2.3.7")\n@file:DependsOn("io.ktor:ktor-client-java:2.3.7")\n\nimport io.ktor.client.*\nimport io.ktor.client.request.*\nimport io.ktor.client.statement.*\nimport com.google.gson.Gson\nimport com.google.gson.reflect.TypeToken\nimport java.io.File\                

ब्लॉग

पुस्तक अनुशंसाएँ