中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Python開發Emoji表情查找程序

發布時間:2021-06-28 14:44:51 來源:億速云 閱讀:163 作者:chen 欄目:編程語言

本篇內容介紹了“怎么用Python開發Emoji表情查找程序”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

今天分享一個前幾天構建的小應用程序,用來從命令行搜索emoji表情符號。

它可以通過OS命令行來完成,而且不必單擊任何東西即可獲得我的表情符號,更加便捷。

該工具支持一次將多個匹配的表情符號復制到剪貼板。

$ emo  ------------------------------------------------------------------------------------ Type one or more emoji related words ... End a word with a . if you want to select an emoji if there are multiple matches, otherwise the first match will be picked. Type 'q' to exit. > snake beer fire ninja Copying ? ? ? ? to clipboard  ------------------------------------------------------------------------------------ Type one or more emoji related words ... End a word with a . if you want to select an emoji if there are multiple matches, otherwise the first match will be picked. Type 'q' to exit. > q Bye

至此,我的剪貼板上所有4個表情符號都寫好了,在鍵盤輸入Cmd + V即可。

是不是很酷?

安裝并運行程序包

git clone git@github.com:PyBites-Open-Source/emojisearcher.git cd emojisearcher poetry install poetry run emo

poetry使依賴項管理變得輕而易舉,最后一個命令(別名)實際上有效,因為我將其放在pyproject.toml文件中:

[tool.poetry.scripts] emo = "emojisearcher.script:main"

您也可以通過添加以下shell別名來使調用命令更短(就像我在第一個示例中一樣):

$ alias emo alias emo='cd YOUR_PATH/emojisearcher && poetry run emo'

(將YOUR_PATH更改為項目的路徑。)

文件夾結構

由于有了poetry new,文件夾結構從一開始就遵循了公認的最佳做法。

我喜歡將測試文件放在專用的tests /文件夾中。

我使用emoji庫中的EMOJI_UNICODE常量來查找emoji表情:

... EMOJI_MAPPING = EMOJI_UNICODE[LANGUAGE]  ... def get_emojis_for_word(     word: str, emoji_mapping: dict[str, str] = EMOJI_MAPPING ) -> list[str]:     return [emo for name, emo in emoji_mapping.items() if word in name]

然后我使用pyperclip復制到操作系統的剪貼板中:

from pyperclip import copy ... def copy_emojis_to_clipboard(matches: list[str]) -> None:     all_matching_emojis = ' '.join(matches)     print(f"Copying {all_matching_emojis} to clipboard")     copy(all_matching_emojis)

感謝這個庫的作者AlSweigart,這是一個很酷的程序包。

如何查找多個表情符號?

在這種情況下,我通過user_select_emoji函數進入交互模式。

我想用一種創新的方式來觸發此交互模式,為此選擇了信號字符(SIGNAL_CHAR):如果用戶的搜索字符串以點(.)結尾,它將進入交互模式。

原因如下:

$ emo  ------------------------------------------------------------------------------------ Type one or more emoji related words ... End a word with a . if you want to select an emoji if there are multiple matches, otherwise the first match will be picked. Type 'q' to exit. > snake Copying ? to clipboard  ------------------------------------------------------------------------------------ Type one or more emoji related words ... End a word with a . if you want to select an emoji if there are multiple matches, otherwise the first match will be picked. Type 'q' to exit. > flag Copying ? to clipboard  ------------------------------------------------------------------------------------ Type one or more emoji related words ... End a word with a . if you want to select an emoji if there are multiple matches, otherwise the first match will be picked. Type 'q' to exit. > flag. 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ?‍?? 10 ??‍? 11 ??‍?? 12 ? 13 ? Select the number of the emoji you want: 12 Copying ? to clipboard  ------------------------------------------------------------------------------------ Type one or more emoji related words ... End a word with a . if you want to select an emoji if there are multiple matches, otherwise the first match will be picked. Type 'q' to exit. > q Bye

鍵入“snake(蛇)”后出現的emoji不會出錯,但是對于“flag(旗幟)”,它默認選擇12個匹配項中的第一個(對于“heart(心臟)”,我們會得到130個匹配的表情符號!),這里我想手動選擇一個,因此鍵入點".",以做出進一步的選擇。

測試

還有幾件事:

@ pytest.mark.parametrize非常好,可以使您的測試代碼更加簡潔。

將代碼分解為更多的功能使其更可重用且更易于測試。

我測試了使用@patch(“ builtins.input”,side_effect =  ['a',10,2,'q']的交互模式模擬input的方法。side_effect中的列表包含將“double”  input的參數。這等效于以下內容(在鍵入tree之后。):

$ emo  ------------------------------------------------------------------------------------ Type one or more emoji related words ... End a word with a . if you want to select an emoji if there are multiple matches, otherwise the first match will be picked. Type 'q' to exit. > tree. 1 ? 2 ? 3 ? 4 ? 5 ? Select the number of the emoji you want: a a is not an integer. 1 ? 2 ? 3 ? 4 ? 5 ? Select the number of the emoji you want: 10 10 is not a valid option. 1 ? 2 ? 3 ? 4 ? 5 ? Select the number of the emoji you want: 2 Copying ? to clipboard  ------------------------------------------------------------------------------------ Type one or more emoji related words ... End a word with a . if you want to select an emoji if there are multiple matches, otherwise the first match will be picked. Type 'q' to exit. > q Bye

測試代碼時,一種有用的技術是刪除所有常見的前導空白。您可以為此使用textwrap.dedent,但是在這里我使用了替代的inspect.cleandoc。

上傳到PyPI

感謝toml文件中[tool.poetry]中的一些基本元數據,發布到PyP非常簡單:

poetry build  poetry publish

(首先使用--repository of publish在測試PyPI上嘗試一下,看是否一切正常。)

“怎么用Python開發Emoji表情查找程序”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定边县| 育儿| 时尚| 阿坝县| 双流县| 寻乌县| 穆棱市| 漾濞| 察雅县| 昌邑市| 新乡县| 观塘区| 平阴县| 加查县| 安国市| 揭东县| 乌海市| 五华县| 湾仔区| 教育| 阿拉善盟| 泰顺县| 荆州市| 册亨县| 沙湾县| 鹿泉市| 嘉义县| 丹凤县| 大英县| 梁平县| 南澳县| 汝城县| 扎鲁特旗| 麦盖提县| 红河县| 柘城县| 通化市| 定结县| 宁海县| 江津市| 伊吾县|