我在下面写了一个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')
例如,如果您有一个名为run.bat的文件您可以使用以下线路:python /path/to/python/file
双击.bat文件,它将在控制台中返回python脚本。
仅适用于Windows
如果双击.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>AppDataLocalProgramsPythonPython39>
python <you_program>.py
PAUSE
当然,你应该用电脑上相应的路径来更改路径。编写完脚本后,必须将其保存为批处理文件,例如run.bat
这次尝试双击运行.bat