python 学习–批量翻译文件生成
- 注释符号: //
// 默认调用/usr/bin/python程序
#!/usr/bin/python
// 编码使用utf8
# encoding=utf8
// 在python里面,读取或写入csv文件时,首先要(引用)import csv这个库,
// 然后利用这个库提供的方法进行对文件的读写
import csv
// 知识点:from 模块名 import xxx ---> xxx可以是类,函数,常量等等
// 这里的意思是导入xml.dom.minidom模块中Document这个类
// 与import的区别是:在后面使用某一个类时,需要模块名字+类名字;
// 而通过from 模块名 import xxx导入的类在被调用时,可以直接写类名
from xml.dom.minidom import Document
// 导入sys这个模块,sys模块包含了python解释器和它的环境有关的函数
import sys
// 重新载入sys模块
reload(sys)
// 设置系统的默认编码为utf8
sys.setdefaultencoding('utf8')
// 当.py文件以模块形式被导入时,if __name__ == "__main__":之下
// 的代码块不会被运行,只有当自己作为主程序入口时,之下的代码块才会
// 被运行
if __name__ == "__main__":
// 知识点:try...except...表示如果在执行try内部的代码块出现错误时,进入except内部
// 的代码块,处理错误现象
// 这段代码的意思是打开locale.csv文件,可读模式
try:
csvfile = open('locale.csv', 'rb')
reader =csv.DictReader(csvfile);
except IOError as e:
print e
sys.exit(1)
// 定义3个空变量
languages = []
docs = {}
rootNode = {}
// 使用for循环来执行具体的逻辑
for field in reader.fieldnames:
if field.upper() != "ID" and not field.startswith('_'):
languages.append(field)
docs[field] = Document()
rootNode[field] = docs[field].createElement("language")
docs[field].appendChild(rootNode[field])
for row in reader:
for language in languages:
element = docs[language].createElement(row["ID"])
text = docs[language].createTextNode(row[language])
element.appendChild(text)
rootNode[language].appendChild(element)
for language in languages:
with open(language+".xml", "w") as f:
f.write(docs[language].toprettyxml(encoding="UTF-8"))