跳到主要內容

[Python] 自己製作文字設定檔config file,動態調整程式設定

在軟體開發中,通常不會知道實際使用行為有那些與原先預期不一樣的情況,這時如果還要針對特定的不同需求改程式是很吃力不討好的事情。所以我們常常會需要能夠動態調整一些設定,以應付不同的使用情況。

下面以Python提一個簡單的方法來動態調整程式設定:

建立一個function,在程式初始化時呼叫:
EX:
def initialSetting():
        try:
            currentDirectory = os.getcwd()
            filePath = '%s\\ToolSet.cfg' % (currentDirectory)
            file = open(filePath, 'r')
            for line in file.readlines():
                if line.find("Value1") == 0:
                    str1 = int(line[7:-1])
                elif line.find("Value2") == 0:
                    str2 = int(line[7:-1])
                elif line.find("Value3") == 0:
                    str3 = int(line[7:-1])
            file.close()
        except IOError:
            print('Config file error!!')

此function會在對應路徑下讀取 ToolSet.cfg 檔案,一次一行的讀取字串進行判斷,ToolSet.cfg就是文字檔,內容如下:

EX:
Value1=hello world
Value2=test content
Value3=have a nice day

如此就會得到str1 = hello world, str2 = test content, str3 = have a nice day

所以只要在for迴圈裏頭判斷特定字串(EX: "Value1") 即可取得參數值,而後就是根據參數值去做動態的判斷啦~

留言

這個網誌中的熱門文章

[Python] 以.py檔案產生Windows EXE 執行檔

如何開發能在Windows下執行的Python程式?你當然可以在Windows下安裝Python之後用command line運行你的 .py source code來直接執行程式,但是這方法基本上只適合開發中的程式,或是自己寫好玩只在自己的PC上執行的程式,也許適用。 但若你的需求是要在每個Windows的OS下都可以執行、且是不公開程式碼的,那就必須要將你的 .py source code包裝成EXE執行檔了,下面就介紹如何進行: –下載 auto-py-to-exe-master https://github.com/brentvollebregt/auto-py-to-exe 1. 解壓縮auto-py-to-exe-master.zip到想要的路徑下(路徑不能有空格或".") 2. 開啟Cmd console 到auto-py-to-exe-master路徑下 3. 在console下執行"pip install -r requirements.txt" 4. 在console下執行"python run.py" 運行完畢後就可以選取你要轉成執行檔的 .py 檔案,進行製作。 可參考下面的影片: 產生出來的檔案包含執行檔與其程式中會用到的相關Lib檔案,所以要將整個output資料夾中的檔案一併提取出來 (不要只拿執行檔出來)。 如此你就可以在任意的Windows上執行你的程式了。

Visual Studio 軟體開發的授權問題

使用Visual Studio開發各種軟體產品非常的方便,此款地表最強軟體開發工具涵蓋了各種的程式語言。但在授權上需要注意一下,否則很有可能會被微軟收取罰金。         Visual Studio Community可以在任何狀況下使用,但是要商業用途(賣產品)只限個人創作,公司組織的話除非是開放原碼、教育、學術研究,除此之外皆不可使用。 因此公司組織要用Visual Studio做產品的話,一種做法是買一套Professional版本,開發時用 Community 版本,要Release給客戶時用 Professional 或更高級的版本編譯;另一種做法是不考慮轉用更高級版本,那麼一開始就採用 Express 版可以降低未來轉換之困擾。 但需要知道 Express 版少了許多功能(例如 Code Coverage、Profiling ...),並且從2019開始微軟不再推出Express版本,也意味著沒有"公司組織免費使用Visual Studio開發產品"的選項了。 微軟雖然不再推出Express版本,但有另一個免費的IDE工具VS code,也可用來開發軟體,只是相對來說Visual Studio只稱得上是一個程式編輯器,如果要在VS code上開發如Winform的程式,就要使用第三方的工具了,以下提供幾個VS code上開發的連結: VS code上開發Winform https://ironmansoftware.com/building-a-windows-form-app-with-powershell-in-vs-code/ VS code上開發ASP.NET core https://blog.johnwu.cc/article/asp-net-core-3-starting.html

[Python] 解決UI更新速度太慢,影響執行速度的快速解法 !!

有用過Python開發UI的人應該都知道,Python的UI更新速度很慢,不是一般的慢,是超級慢。慢到時麼程度呢?大概就是你如果寫一個for迴圈更新比如20個Entry元件的文字顯示,會在UI上清楚的看到20個元件依序被刷新的畫面,20個更新完大概要1到2秒吧。 這樣的速度在有些需要即時反映且更新頻繁的案子上就會被客戶打槍了,因此有一個小方法雖然不能改變Python在UI上的更新速度,但至少可以不讓UI更新速度影響工作的進行 (UI它慢就慢,但我程序還是一樣照跑照跳)。 解法就是: 產生一個thread專門負責UI介面上的更新 我們在程式運作一開始,就先產生兩個thread,一個負責程序的進行,一個負責UI的更新。 來看source code: class EventHandleThread (threading.Thread):     def __init__(self, fun, name):         threading.Thread.__init__(self)         self.name = name         self.fun = fun         self.stopped = [0]     def run(self):         self.fun(self.name, self.stopped)         print ("Exiting " + self.name)     def stop(self):         self.stopped[0] = 1 #用來傳遞內容的Queue and Lock m_queueLock = threading.Lock() m_workQueue = queue.Queue(30) #UI thread的運作function def UiHandleLoop(self, name,...