电脑上有个文件夹,里面的子文件夹都是英文的,看着很是不方便,所以打算给英文后面加个中文;
手动修改名字也是个办法,但是还有其他自动的办法;就不需要手动了。
修改文件夹的方法很简单,使用python中的os库就行
path = r'I:/ps/uploads/'
list_f = os.listdir(path)
for l_f in list_f:
print(l_f)
zh = ‘中文’
#print(zh)
os.rename(path+l_f,path+l_f+'_'+zh)
但是英文翻译成中文,就得借助与翻译接口了;
支持翻译的接口很多,看选择那一个了,当然是已注册的平台优先了,这里选择百度翻译的接口;
调用翻译接口步骤
0、平台地址:http://api.fanyi.baidu.com/
1、首先得有一个账号,一个appid和一个密钥
2、查看对接文档,了解入参出参
3、敲代码;
直接先看文档:
其中最主要的是生成签名:
Step1. 将请求参数中的 APPID(appid), 翻译 query(q,注意为UTF-8编码),随机数(salt),以及平台分配的密钥 按照 appid+q+salt+密钥的顺序拼接得到字符串 1。
Step2. 对字符串 1 做 MD5 ,得到 32 位小写的 sign。
代码如下:
sign = appid + q + str(salt) + secretKey
sign = hashlib.md5(sign.encode()).hexdigest()
myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
salt) + '&sign=' + sign
需要用到两个库:
import hashlib #生成md5
import urllib #对文本就行url编码
接口调用就简单一点了;
http请求有多种选择;
1.、使用http.client
httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
httpClient.request('GET', myurl)
# response是HTTPResponse对象
response = httpClient.getresponse()
result_all = response.read().decode("utf-8")
result = json.loads(result_all)
2、使用requests:
endpoint = 'http://api.fanyi.baidu.com'
result = requests.get(endpoint + myurl).json()
使用requests方式,两行代码搞定;
3、提取结果;
接口返回一个字段,最终翻译结果需要通过属性获取;
result_one = result'trans_result'['dst']
代码实现
from time import sleep
import requests
import hashlib
import urllib
import random
import search_str
import os
appid = search_str.appid # 填写你的appid
secretKey = search_str.secretKey # 填写你的密钥
def getResult(q, fromLang = 'en', toLang = 'zh'):
myurl = '/api/trans/vip/translate'
salt = random.randint(32768, 65536)
#q = 'm_m' #翻译内容
sign = appid + q + str(salt) + secretKey
sign = hashlib.md5(sign.encode()).hexdigest()
myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(q)
myurl = myurl + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(salt) + '&sign=' + sign
try:
endpoint = 'http://api.fanyi.baidu.com'
result = requests.get(endpoint + myurl).json()
print(result)
result_one = result['trans_result'][0]['dst']
return result_one
except Exception as e:
print(e)
#result = getResult('apple')
#print(result)
def fanyi():
path = r'I:/ps/uploads/'
list_f = os.listdir(path)
go = False
for l_f in list_f:
print(l_f)
try:
zh = getResult(l_f)
os.rename(path+l_f,path+l_f+'_'+zh)
except:
pass
sleep(1)