You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Go中将路径数组通过管道传入外部命令执行?

实现方法

核心思路:mpv 的 --playlist=- 参数会从标准输入读取播放列表,要求每行一个文件路径。只需将你的路径数组按行输出,再通过管道传递给 mpv 即可实现顺序播放。

1. Bash 脚本实现

如果你的路径数组是 Bash 环境中的数组:

# 定义路径数组
files=("file1.mp4" "file2.mp4" "fileN.mp4")
# 将数组元素逐行输出并管道传给 mpv
printf "%s\n" "${files[@]}" | mpv --playlist=-

2. Go 语言实现

如果是 Go 中的 []string 类型数组:

package main

import (
	"os"
	"os/exec"
	"strings"
)

func main() {
	files := []string{"file1.mp4", "file2.mp4", "fileN.mp4"}
	// 将数组转为每行一个路径的字符串
	playlist := strings.Join(files, "\n") + "\n"

	// 启动 mpv 进程,绑定标准输入
	cmd := exec.Command("mpv", "--playlist=-")
	cmd.Stdin = strings.NewReader(playlist)
	cmd.Stdout = os.Stdout
	cmd.Stderr = os.Stderr

	// 执行命令
	if err := cmd.Run(); err != nil {
		panic(err)
	}
}

3. Python 实现

如果是 Python 中的列表:

import subprocess

files = ["file1.mp4", "file2.mp4", "fileN.mp4"]
# 将列表元素按行拼接并编码
playlist = "\n".join(files).encode()

# 启动 mpv,通过标准输入传递播放列表
subprocess.run(["mpv", "--playlist=-"], input=playlist)

注意事项

  • 若路径包含空格或特殊字符,上述方法均能正确处理(按行传递避免了命令参数拆分的问题)
  • 确保 mpv 已安装并添加到系统环境变量 PATH 中

内容的提问来源于stack exchange,提问作者user4616986

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 12:32:04