鱼C论坛

 找回密码
 立即注册
查看: 3210|回复: 9

os.system里的变量参数怎么写?

[复制链接]
发表于 2022-12-28 14:00:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 blackantt 于 2022-12-28 14:04 编辑

1.  windows下的正常命令形式:
#https://github.com/kxxt/aspeak
aspeak -t "近日在全国多地,许多新冠感染者们已陆续转阴,回归到正常的生活和工作中。"  -o output1.mp3   -v zh-CN-YunjianNeural




2.  现在 把 输出换成变量表示,并用os.system来运行。这个也正常
now_time = datetime.datetime.now()
year = now_time.year
month = now_time.month
day = now_time.day

out1 = "./1/{}_{}_{}_".format(year, month, day)+str(i)
os.system('aspeak -t """近日在全国多地,许多新冠感染者们已陆续转阴,回归到正常的生活和工作中。"""  -v zh-CN-YunjianNeural -R YoungAdultMale -o "{}".mp3'.format(out1))



3. 现在 想把输入,输出都换成变量表示,并用os.system来运行。这个该怎么写os.system的命令行?

print(names1["hot50_cn_topic_" + str(i) ][0:280])
print(type(names1["hot50_cn_topic_" + str(i) ][0:280]))     #结果为 str

input1 = names1["hot50_cn_topic_" + str(i) ][0:280]
input2 = "近日在全国多地,许多新冠感染者们已陆续转阴,回归到正常的生活和工作中。"

#os.system('aspeak -t names1["hot50_cn_topic_" + str(i) ][0:280] -o "./1/{}_{}_{}_".format(year, month, day)+str(i)+".mp3" -l zh-CN')            # 结果: -t names1["hot50_cn_topic_" + str(i) ][0:280]  格式不正常
#os.system('aspeak -t input1 -v zh-CN-YunjianNeural -R YoungAdultMale -o "{}".mp3'.format(out1))                                                                 # 结果: -t input1  格式不正常
#os.system('aspeak -t input2 -v zh-CN-YunjianNeural -R YoungAdultMale -o "{}".mp3'.format(out1))                                                                 # 结果: -t input2  格式不正常

os.system('aspeak -t """近日在全国多地,许多新冠感染者们已陆续转阴,回归到正常的生活和工作中。""" -v zh-CN-YunjianNeural -R YoungAdultMale -o "{}".mp3'.format(out1))       #这个是正常的

-t 之后的输入参数  怎么才能换成变量呢?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-28 14:08:37 | 显示全部楼层
很多办法,可以用+连接
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-28 14:11:41 | 显示全部楼层
试试这个:
import os
input2 = "近日在全国多地,许多新冠感染者们已陆续转阴,回归到正常的生活和工作中。"
os.system(f'aspeak -t {input2!r}  -o output1.mp3   -v zh-CN-YunjianNeural')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-28 14:12:23 | 显示全部楼层
青出于蓝 发表于 2022-12-28 14:08
很多办法,可以用+连接


我用+好像也不行,你能不能具体写一下。 先不管输出,看 -t 后的 """ """ 字符串怎么用变量替换一下?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-28 14:19:01 | 显示全部楼层
blackantt 发表于 2022-12-28 14:12
我用+好像也不行,你能不能具体写一下。 先不管输出,看 -t 后的 """ """ 字符串怎么用变量替换一下?


你为什么要用三个引号?我上面发的你试一下看看行不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-28 14:20:28 | 显示全部楼层
os.system(f'aspeak -t """{input2}""" -v zh-CN-YunjianNeural -R YoungAdultMale -o "{out1}".mp3')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-28 14:21:03 | 显示全部楼层
blackantt 发表于 2022-12-28 14:12
我用+好像也不行,你能不能具体写一下。 先不管输出,看 -t 后的 """ """ 字符串怎么用变量替换一下?

电脑不在手边,没有试验
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-28 14:29:08 | 显示全部楼层
isdkz 发表于 2022-12-28 14:19
你为什么要用三个引号?我上面发的你试一下看看行不行

我怕字符串里有单,双 引号。
你这个输入对了。 但输出如用我原来的变量方式,就又不对了。

能不能把输出用我原来的模式,咋改造一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-28 14:31:09 | 显示全部楼层
本帖最后由 isdkz 于 2022-12-28 14:39 编辑
blackantt 发表于 2022-12-28 14:29
我怕字符串里有单,双 引号。
你这个输入对了。 但输出如用我原来的变量方式,就又不对了。


就是 {变量名!r}
os.system(f'aspeak -t {input2!r} -o {out1!r} -v zh-CN-YunjianNeural')

格式字符串语法官方文档:https://docs.python.org/zh-cn/3/ ... ormat-string-syntax
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-28 14:54:20 | 显示全部楼层
青出于蓝 发表于 2022-12-28 14:20
os.system(f'aspeak -t """{input2}""" -v zh-CN-YunjianNeural -R YoungAdultMale -o "{out1}".mp3')

这个可以,但我的  input1 = names1["hot50_cn_topic_" + str(i) ][0:280] 也是 str 型的,我套进去就又不对了。
怎么能把  names1["hot50_cn_topic_" + str(i) ][0:280]  这个变量串 做输入呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 05:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表