我在下面写了一个python代码来用粤语(中文)发音当前的年、月、日和工作日。
如果在python控制台上运行,下面的代码可以运行并且发音清晰(这里我使用python 3.7,windows 10)
但是,如果双击 .py 文件,下面的代码将无法运行。
有什么想法吗?
import requests
import os
import datetime
def TTS(text, speed, lan, per):
"""粤语-音色:标准音
"""
convertTable = {
'粤语': ('CTE', {'标准音': 0
})
}
data = {
'tex': text,
'spd': speed,
'lan': convertTable[lan][0],
'per': convertTable[lan][1][per],
'ctp': 1,
'cuid': 'baike',
'ie': 'UTF-8',
'pdt': 301,
'vol': 9,
'rate': 32
}
result = requests.get('https://tts.baidu.com/text2audio', params=data)
try:
result.json()
except:
return result.content
else:
raise ValueError
if __name__ == '__main__':
dt=datetime.datetime.now()
y=str(dt)[:4]
if str(dt)[5:6]=="0":
m=str(dt)[6:7]
else:
m=str(dt)[5:7]
if str(dt)[8:9]=="0":
d=str(dt)[9:10]
else:
d=str(dt)[8:10]
numbers={
1:"星期一",
2:"星期二",
3:"星期三",
4:"星期四",
5:"星期五",
6:"星期六",
0:"星期日"
}
TextToSpeak=y+"年"+m+"月"+d+"日"+numbers.get(int(dt.strftime("%w")),"None")
print(TextToSpeak)
try:
bindata = TTS(TextToSpeak, 5, '粤语', '标准音')
except:
print('Error')
else:
with open('date.mp3', 'wb+') as f:
f.write(bindata)
os.startfile('date.mp3')
答案 0 :(得分:0)
如果双击 .py 时,它看起来像一个窗口快速打开和关闭,那么您的文件确实被执行了,但速度太快了,您甚至没有时间查看可能的错误。为了测试它是否真的有效,请使用以下代码编写 .py:
text_file = open("test.txt","w")
text_file.write("Hello World!")
text_file.close()
尝试运行,如果创建了 test.txt,则脚本确实被执行了。
您可以尝试以下步骤:
1- 只需右键单击脚本文件并转到属性。
2-在常规选项卡中选择“打开方式:”选项,然后从列表中选择python,如果不可用则浏览到python的安装目录并从中选择python.exe。
3- 现在,当您双击文件时,它会自动运行。
如果这仍然不起作用,您应该打开您最喜欢的文本编辑器并编写此脚本:
ECHO ON
SET PATH=<C:\Users\<User>\AppData\Local\Programs\Python\Python39\>
python <you_program>.py
PAUSE
当然,您应该将路径更改为您计算机上的相应路径。 编写脚本后,您必须将其保存为批处理文件,例如 run.bat
这次尝试双击run.bat
答案 1 :(得分:0)
这是因为 .py 文件实际上是一堆纯文本。 最简单的方法是编写一个调用python脚本的.bat脚本。
例如,如果您有一个名为 run.bat 的文件
你可以有这样的行:
python /path/to/python/file
通过双击 .bat 文件,它将在控制台中返回 python 脚本。