Uahh / Fyzhq

发音转换器
149 stars 25 forks source link

Pythonic 代码微调 #2

Open iydon opened 2 years ago

iydon commented 2 years ago

https://github.com/Uahh/Fyzhq/blob/ada05d9deb1d63da7a4ef5bbe09e04cf9cb4a5a8/python_ver/main.py#L8-L35

在原来的基础上稍微调整了下代码:

with open('./data/language.json', encoding='utf_8') as json_file:
    language = json.load(json_file)

for arg in sys.argv[1:]:
    choice = {
        '-jp': 'Japanese',
        '-gm': 'German',
        '-fr': 'French',
        '-ru': 'Russian',
        '-kr': 'Korean',
        '-th': 'Thai',
    }.get(arg, 'Japanese')
    # language[choice].get(word[0], word[0])
    print(''.join(language[choice][word[0]] for word in sentence))
iydon commented 2 years ago

当然写成函数或者类的形式可能更 pythonic(

Uahh commented 2 years ago

谢谢,我可以marge

iydon commented 2 years ago

小修改不确定是否还要发起 PR,有空的话可以直接在原基础上改,然后 commit 时的 message 标注 fix #2 等形式应该就可以了。

popu2do commented 4 months ago

遇到纯字母非拼音时,json是找不到相关的key的,稍微改了改

import sys
import json
import pypinyin

if len(sys.argv) < 3:
    print("参数错误, -->用法:.py [-en<默认英文>] [\"str\"]")
    exit(0)

temp = '欧内的手,好汉'

sentence = pypinyin.pinyin(sys.argv[2:] if sys.argv[2:] else temp, style=pypinyin.NORMAL)

with open('./data/language.json', encoding='utf_8') as json_file:
    language = json.load(json_file)

choice = {
        '-en': 'English',
        '-jp': 'Japanese',
        '-gm': 'German',
        '-fr': 'French',
        '-ru': 'Russian',
        '-kr': 'Korean',
        '-th': 'Thai',
    }.get(sys.argv[1], 'English')

# 非pinyin不处理
print(''.join(' '+language[choice].get(word[0], word[0]) for word in sentence))