pipline+standard

func runPythonScript(_ inputText: String) {
        let process = Process()
       
        process.executableURL = URL(fileURLWithPath: "/opt/anaconda3/envs/t5/bin/python") // 修改为 Anaconda Python 的路径
        process.arguments = ["/Users/helinyu/workspace/GitHub/test_ai/test_trans.py"]

        let inputPipe = Pipe()
        let outputPipe = Pipe()

        // 将输入文本传递给 Python 脚本
        inputPipe.fileHandleForWriting.write(Data(inputText.utf8))
        inputPipe.fileHandleForWriting.closeFile()

        process.standardInput = inputPipe
        process.standardOutput = outputPipe
        
        do {
            try process.run()
            
            // 等待脚本执行完毕
            process.waitUntilExit()

            let data = outputPipe.fileHandleForReading.readDataToEndOfFile()
            if let output = String(data: data, encoding: .utf8) {
                translatedText = output
            }
        } catch {
            print("Error running Python script: \(error)")
        }
    }

注意执行文件的路径要绝对路径

Last updated