早就習慣使用wiki來編寫分享項目文檔了,編寫快捷,修改查詢方便,實在居家旅行,殺人越貨的頂級裝備。 但是以前的不少文檔都是word格式的,轉到wiki有點工作量,整個小程序來簡化一下。
  • 分析
    此處假設word文件是以阿拉伯數字標題來區分章節的, 而wiki的章節是title的形式表現的。

比如word中的

1.2.3 xxxx


可以轉換為對應wiki中的header

 === 1.2.3 xxxx ===


另外一種情況是列表

 1.
 
2.


列表總是以數字+. 來表示,轉換為對應的wiki列表只要前面多加一個空格符號就可以了。

  • 實現步驟
     1. 將word文件保存為文本文件, 可以使用copy -》 paste 到寫字板的方法
     2. 使用word2py.py小程序把這個文本文件處理成wiki支持的格式, 再貼到wiki中就可以了
     3. 圖片手工加入
  • word2py.py
    一個用python寫的小程序, 運行時需要手工修改代碼內的word txt文件名,需要安裝python,并設置可執行文件目錄在path下。

 


#!/usr/bin/python
#
 -*- coding: gbk -*-
import sys
import codecs
inputFile 
= "word.txt"
if len(sys.argv) > 1 :
    inputFile 
= sys.argv[1]
wordFile 
= open(inputFile);
#wordFile = codecs.open(inputFile, 'r', 'gbk');
wf = open("wiki.txt"'w'#need to encode before writting
#
wf = codecs.open("wiki.txt", 'w', 'gbk')
line = wordFile.readline();

while line:
    line 
= unicode(line, "gbk")
    
for i in range(0,len(line)):
        
try:
            int(line[0]) 
#not start with number
        except:
            
break
        header 
= line.split()[0]
        
if header.endswith(".") :
            line 
= " " + line # it's a list ,add a space char .
        else:
            count 
= 1
            
for j in range(0, len(header)):
                
if header[j] == "." :
                    count 
+= 1
            line 
= r" " + "="*count + " " +  line.replace('\n'""+ " " + "="*count + " \n"
        
break;
    wf.writelines(line.encode(
"gbk")); 
#    wf.writelines(line);
    line = wordFile.readline();
wf.close()

 

拷貝下來存為一個文件就可以了。

python處理中文極為不爽,實際這些腳本語言除了 groovy ,jython這樣內部就是的unicode就沒爽過,要轉來轉去的。 此處如果unicode不轉成native ascii保存又會錯。 另外pydev 不能正確處理中文,只能在命令行方式搞。

后來發現可以使用decodes的中提供的標準unicode方式來處理,不需要再手工轉碼,而且改用這種方式以后pydev也可以正常運行了。 貌似pydev調用python的shell有問題,如果涉及轉碼,回車什么的就會出錯, pydev的牛人答復某人類似的問題說是python的bug。但是用這種方式不知道為啥刪除行末的\n又不生效了。

最后用py2exe轉換成exe文件, 壓縮以后1m左右,不需要python也可以運行了,不過估計也沒人使用,自己寫了就是圖好玩,哈哈。