2012-07-17 71 views
0

這裏的場景:Python:在限制環境下讀取/存儲配置文件?

我正在寫一個程序,將運行在Telit HE910 GSM模塊,它有一個板載python解釋器。 我希望我的程序能夠讀取和存儲GSM模塊上的配置文件中的一些參數。 該文件可能偶爾會被轉移到一個單獨的機器中查看和更改,因此它應該是機器可讀和可寫入多個平臺。

到目前爲止,這個問題有多種解決方案。這裏是踢球,但:

  • GSM模塊沒有解析任何Python模塊/寫配置文件(所以我不能簡單地使用import yamlimport jsonimport configparser,甚至import csv
  • GSM模塊不允許創建子目錄。從我有限的理解中,這可以防止我簡單地將PyYAML python模塊的內容轉儲到GSM模塊中並從我的程序中調用它。

我發現了一個類似的問題here,但我甚至不知道我在哪裏GSM模塊的文件系統。 import os似乎不起作用,這很奇怪(與文檔相反)。

我知道我可以使用Python文件來存儲一些只讀配置,但我也希望能夠寫入配置文件(重新設計系統以避免這種情況真的是不可取的)。

我想我迄今爲止最好的選擇似乎是自己編寫一個簡單的csv解析器/編寫器,除非有人有更好的主意(或者知道如何在沒有任何子目錄的情況下使用Python模塊)。

PS:以下文檔列出了支持的模塊。然而,沒有任何配置相關的模塊可用。

編輯:我應該提到,該配置文件需要是可讀/從AC#.NET應用程序可寫的,而不是桌面上的另一個python解釋器。

回答

2

您有_ast(§5.2.36),所以應該可以重新實現ast.literal_eval()。在那個時候,閱讀和寫作變得微不足道。

+0

這對於閱讀非常有用,但是我不確定這將對寫作有用。另外,我應該指定配置文件需要跨平臺到C#。net,而不是臺式機上的另一個python解釋器。 – ssfivy 2012-07-17 23:20:22

+0

寫入是'print >> fp,repr(data)'。和IronPython。 – 2012-07-18 00:04:04

+0

謝謝,這應該工作(等待ironpython,需要與.net人交談)。 – ssfivy 2012-07-18 05:15:41

1

我不會推薦它在普通的Python的用法,但一個可能的辦法是在您發佈的手冊中提到5.2.34的marshal模塊,並說明/限制/警告在這裏:http://docs.python.org/library/marshal.html

+0

也許不是因爲它應該是跨平臺的,以C#.NET是非常有用的,對不起,應該以前提到它。 – ssfivy 2012-07-17 23:36:32

0

何不你是不是打開一個txt文件並將所有信息存儲爲一個文本文件?我爲您的模塊閱讀了簡單腳本手冊,有一個支持打開,關閉,取消鏈接等方法的posix模塊。

+0

打開文件後我仍然需要解析文件... – ssfivy 2013-07-26 01:49:55