1. 程式人生 > >linux終端翻譯神器

linux終端翻譯神器

#! /usr/bin/python
import re;
import urllib;
import urllib2;
import sys;
def debug():
	xml = open("word.xml").read();
	print get_text(xml);
	print get_elements_by_path(xml, "custom-translation/content");
	#print_translations(xml, False, False);
def get_elements_by_path(xml, elem):
	if type(xml) == type(''):
		xml = [xml];
	if type(elem) == type(''):
		elem = elem.split('/');
	if (len(xml) == 0):
		return [];
	elif (len(elem) == 0):
		return xml;
	elif (len(elem) == 1):
		result = [];
		for item in xml:
			result += get_elements(item, elem[0]);
		return result;
	else:
		subitems = [];
		for item in xml:
			subitems += get_elements(item, elem[0]);
		return get_elements_by_path(subitems, elem[1:]);
textre = re.compile("\!\[CDATA\[(.*?)\]\]", re.DOTALL);
def get_text(xml):
	match = re.search(textre, xml);
	if not match:
		return xml;
	return match.group(1);
def get_elements(xml, elem):
	p = re.compile("<" + elem + ">" + "(.*?)</" + elem + ">", re.DOTALL);
	it = p.finditer(xml);
	result = [];
	for m in it:
		result.append(m.group(1));
	return result;
GREEN = "\033[1;32m";
DEFAULT = "\033[0;49m";
BOLD = "\033[1m";
UNDERLINE = "\033[4m";
NORMAL = "\033[m";
RED = "\033[1;31m"
def crawl_xml(queryword):
	return urllib2.urlopen("http://dict.yodao.com/search?keyfrom=dict.python&q="
        + urllib.quote_plus(queryword) + "&xmlDetail=true&doctype=xml").read();
def print_translations(xml, with_color, detailed):
        #print xml;
	original_query = get_elements(xml, "original-query");
	queryword = get_text(original_query[0]);
	custom_translations = get_elements(xml, "custom-translation");
	print BOLD + UNDERLINE + queryword + NORMAL;
	translated = False;
	
	for cus in custom_translations:
		source = get_elements_by_path(cus, "source/name");
		
		print RED + "Translations from " + source[0] + DEFAULT;
		contents = get_elements_by_path(cus, "translation/content");
		if with_color:
			for content in contents[0:5]:
				print GREEN + get_text(content) + DEFAULT;
		else:
			for content in contents[0:5]:
				print get_text(content);
		translated = True;

	yodao_translations = get_elements(xml, "yodao-web-dict");
	printed = False;
	for trans in yodao_translations:
                webtrans = get_elements(trans, "web-translation");
		for web in webtrans[0:5]:
			if not printed:
				print RED + "Translations from yodao:" + DEFAULT;
				printed = True;
	        	keys = get_elements(web, "key");
			values = get_elements_by_path(web, "trans/value");
			summaries = get_elements_by_path(web, "trans/summary");
			key = keys[0].strip();
			value = values[0].strip();
			#summary = summaries[0].strip();
                        #lines = get_elements(summary, "line");
		        if with_color:
			       	print BOLD +  get_text(key) + ":\t" +DEFAULT + GREEN + get_text(value) + NORMAL;
                                #for line in lines:
                                #        print GREEN + get_text(line) + DEFAULT;
				#print get_text(summary) + DEFAULT;
		        else:
				print get_text(value);
				#print get_text(summary);
		        #translated = True;
		        #if not detailed:
			#        break
	
def usage():
	print "usage: dict.py word_to_translate";
def main(argv):
	if len(argv) <= 0:
		usage();
		#debug();
		sys.exit(1);
	xml = crawl_xml(" ".join(argv));
	print_translations(xml, True, False);

if __name__ == "__main__":
	main(sys.argv[1:]);

1.把上面的程式碼儲存在檔案中,以喜歡的檔名命名。(如 fy)。

2.賦予該檔案可執行的許可權。(chmod +x fy)

3.設定環境變數(gedit /etc/profile),在最後一行引號之間加上:檔案的絕對路徑。

4.輸入fy hello試試。

相關推薦

linux終端翻譯神器

#! /usr/bin/python import re; import urllib; import urllib2; import sys; def debug(): xml = open("word.xml").read(); print get_text(xml

Linux終端記錄神器

浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>   

Linux終端高手必備神器

Linux 終端不僅是一個鍵入命令的地方。如若你能熟諳這些基礎技巧,那麼你會在絕大多數 Linux 發行版的預設使用的 Bash shell中游刃有餘。1.Tab 補全這樣能節省時間,並且對於輸入那些你不很確定其具體名稱的檔案和命令來說很方便。比如,當前目錄下有一個名為“really long file na

(轉載)Linux終端復用神器-Tmux使用

完成 單元格 install 運維 integer release rst 置換 運行 Linux終端復用神器-Tmux使用 轉載地址:https://blog.51cto.com/652465/2094738 Tmux是一個優秀的終端復用軟件,類似GNU Sc

常用Linux終端命令

linux 常用命令1 命令行日常系快捷鍵:CTRL + U - 剪切光標前的內容CTRL + K - 剪切光標至行末的內容CTRL + Y - 粘貼CTRL + E - 移動光標到行末CTRL + A - 移動光標到行首ALT + F - 跳向下一個空格ALT + B - 跳回上一個空格ALT + Bac

11個讓你吃驚的 Linux 終端命令

command 自己 任務管理 效果 win str 移動 痛苦 機器 from:http://www.linuxidc.com/Linux/2015-05/117414.htm [日期:2015-05-13] 來源:Linux中國 作者:Linux [字體:大

Linux終端下 dstat 監控工具

linux終端下 dstat 監控工具dstat 是一個可以取代vmstat,iostat,netstat和ifstat這些命令的多功能產品。dstat克服了這些命令的局限並增加了一些另外的功能,增加了監控項,也變得更靈活了。dstat可以很方便監控系統運行狀況並用於基準測試和排除故障。dstat可以讓你實時

輕松學習之Linux教程四 神器vi程序編輯器攻略

分享 內置 snippet 2014年 答案 程序 ice 界面 fff 本系列文章由@超人愛因斯坦出品,轉載請註明出處。 文章鏈接: http://hpw123.net/a/Linux/Linuxjichu/2014

Linux終端運行java源碼出錯——Error: Could not find or load main class [duplicate]

終端 -o erro main spa class文件 img not find https Linux終端中運行.class文件出錯 Linux終端運行java源碼出錯——Error: Could not find or load main class [duplicat

linux--facl及用戶及linux終端

ech 權限 最大 || 一個 file rand 系統 mail 文件系統訪問列表 FACL : Filesystem Access Control List 利用文件擴展保存額外的訪問控制權限 setfacl -m : 設定

linux 終端分屏命令vsp(轉)

log 打開 移動 avi linux detail jsb csdn img 比如:某文件夾下有文件:vector.cc, substr.cc 1.使用vim命令打開任意一個文件:vim vector.cc打開第一個文件。如下圖所示: 2.按:"Esc"鍵 + “:”,

Linux終端gnome-terminal使用詳解

終端 快捷鍵打開終端方法: 1.快捷鍵alt+f2打開運行窗口,在裏面輸入gnome-terminal,回車 2.桌面或目錄空白部分右鍵:點擊open in terminal 3.在活動終端上使用快捷鍵:ctrl+shift+n使用終端標簽: 在終端內部打開標簽:ctrl

Linux終端Web瀏覽器w3m

編輯圖片 前行 輸入 ctrl+s 前臺 提交 上一個 運行 entos w3m是一個基於文本的網頁瀏覽器,支持多種操作系統,在命令行終端可以很好的支持中文。即使在沒有鼠標支持的情況下也可以檢查網頁的輸出。以下列出常用的快捷鍵。 1、安裝w3m 1.1、CentOS Cen

linux終端--文件操作

free 進程 環境配置 all bsp 任務管理器 路徑 使用 permanent ll 查詢列表 等於 ls -lls 查看當前目錄的文件more 用於查看文件top 查看當前CPU,類似於任務管理器ps -ef 查看當前所有的進程export lang-zh-CN.G

修改linux終端的提示字符

技術分享 mage -o 分享圖片 col image inux ps1 source 打開環球變量文件:vim /etc/profile: 添加提示符變量: PS1="[\u@\h \W]\$"; 使 profile 文件生效:source /etc/profile

linux動態追蹤神器——Strace實例介紹【轉】

fork signal lin 通過 調用次數 命令 roc nal 說了 Strace是Linux下一款通用的進程動態跟蹤工具,用來追蹤程序執行時的系統調用和所接收的信號。其應用方法如下圖(部分)。 首先,簡單說說它的使用參數,Strace的參數包括輸出參數

Linux終端命令行下播放音樂的命令

足夠 mp3 管理 關於 令行 ctrl+alt fmt 終端命令 alt+ 現在的 Linux 桌面已經發展的很好了,在桌面下播放音樂操作起來也很簡單。那麽我們還記得在桌面不是那麽好的時候我們是怎麽播放音樂的麽?哎,我是想不起來了,實在是太難了。不過現在我們可以先安裝一個

Linux終端快捷鍵

Linux終端快捷鍵剪切板操作Ctrl+Shi ft+C 復制Ctrl+Shift+V 粘貼光標操作Ctrl+A 行開始位置Ctrl+E 行最後位置Ctrl+F(forwards) 光標向後移動一個字符,相當與→Ctrl+B(backwards) 光標向前移動一個字符,相當與←E

linux系統編輯神器 -vim用法大全

it 運維 vim編輯器文本編輯器,字處理器ASCIInano, sedvi: Visual Interfacevim: VI iMproved全屏編輯器,模式化編輯器vim模式:編輯模式(命令模式)輸入模式末行模式模式轉換:編輯-->輸入:i: 在當前光標所在字符的前面,轉為輸入模式; a:

linux終端下生存30天

fsp slide 界面 有趣 gif class market detail 情況 誰需要 GUI?—— Linux 終端生存之道 局長 發布於2016年11月27日 收藏 134 【騰訊雲】0基礎建站 網站模板9元起! >>>