Kotlin:日常任务自动化。编写真正节省时间的实用工具

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

使用Kotlin实现自动化:为何值得关注



您是否曾花费一小时重命名上百个文件、手动解析日志,或将数据从一个API复制到另一个?这种痛苦想必不陌生。通常,我们会求助于Python或Bash来完成这类任务,但Kotlin——作为Kotlin自动化的工具——却出人意料地强大且优雅。它兼具现代语言的简洁性、JVM的高性能,并能完全访问Java生态系统。



本文不会编写又一个“Hello, World”。我们将直接切入正题:分析那些在日常开发、运维或测试工作中真正实用的Kotlin代码示例。您将学习如何编写Kotlin脚本,用于文件操作、发送HTTP请求、数据解析以及运行系统命令。开始吧!



为何选择Kotlin,而非Python或Bash?



每种语言都有其适用领域。Bash擅长快速单行命令,Python则适用于复杂逻辑和数据科学。但Kotlin用于自动化提供了几个独特优势:



  • 类型安全。您不会在运行时遇到“string vs int”错误——编译器会在初期就将其捕获。
  • 与Java完全兼容。任何Java库(如Apache POI、OkHttp、Jackson)均可开箱即用。
  • Kotlin脚本(.kts)。无需编译即可编写脚本——像普通.sh文件一样直接运行。
  • 简洁的语法。更少的样板代码,更高的可读性。


Kotlin脚本的环境配置



运行Kotlin脚本无需安装Android Studio。只需:



  1. 安装Kotlin编译器(或通过SDKMAN)。
  2. 创建一个扩展名为.kts的文件。
  3. 使用命令运行:kotlinc -script script.kts


完成。现在我们来编写第一个真正实用的脚本。



示例1:批量重命名文件



假设:您有一个包含照片的文件夹IMG_001.jpg, IMG_002.jpg ... IMG_100.jpg。需要将它们重命名为holiday_01.jpg, holiday_02.jpg ...。手动操作需10分钟。用脚本只需2秒。



import java.io.File

fun main() { val folder = File("/path/to/photos") val files = folder.listFiles()?.filter { it.extension == "jpg" } ?: return

files.sorted().forEachIndexed { index, file -> val newName = "holiday_${index.toString().padStart(2, '0')}.jpg" val newFile = File(folder, newName) file.renameTo(newFile) println("Renamed: ${file.name} -> $newName") }}

// 运行:kotlinc -script rename.kts


这个Kotlin代码示例完成了三件事:仅过滤JPG文件、按名称排序(以保持顺序)、以及带编号的重命名。请注意padStart——这是Kotlin中用于数字格式化的优雅特性。



示例2:HTTP请求与JSON解析



经常需要自动化从Web API收集数据。假设我们获取用户列表并将其保存为CSV。在Kotlin用于自动化中,这可以通过ktor-client库(或传统的java.net.HttpURLConnection)用几行代码完成。



但对于脚本,更简单的方式是通过@file:DependsOn引入外部库:



@file:DependsOn("com.google.code.gson:gson:2.10.1")@file:DependsOn("io.ktor:ktor-client-core:2.3.7")@file:DependsOn("io.ktor:ktor-client-java:2.3.7")

import io.ktor.client.*import io.ktor.client.request.*import io.ktor.client.statement.*import com.google.gson.Gsonimport com.google.gson.reflect.TypeTokenimport java.io.File\

博客

书籍推荐