私はPython3.4でソフトウェアを開発しました。このソフトウェアは入力として変数のセットを持つ設定ファイルを持ち、その一部はパスです。Pythonは、Windowsエクスプローラからパスファイルをコピーして変数にコピーします。
ファイルパス名にセパレータに問題があります。 文字列の前に "r"を付けるか、二重バックスラッシュまたはスラッシュを使用して生の文字列を使用することができますが、このソフトウェアは他のユーザーによって使用され、平均的なものは単なる "コピー"私は彼らがファイル名を操作しないようにしています。
ので、ユーザーは、ちょうどWindowsのエクスプローラからファイルパスをコピーして、設定ファイルに貼り付けるようなものがあります:
path_variable = "C:\Users\home\room\table.txt"
を、私はそれがそのように使用することができます修正する機能を書きたいです。
どうすればいいですか?私は
更新 ...ので\ Uの私は、Unicodeのエラーを取得し、このように
どうもありがとう、
Ciccioの
を文字列のままにすると、設定ファイルではありませんPythonファイルですが、変数とその値の中の.txtファイル:
var_name = var_val
path_variable = "C:\Users\home\room\table.txt"
height = 20
plot_write_variable = ["y", "n"]
これは単なる一時的な解決策ですGUIを完成させるまで。このファイルは本当に理解しやすいものでなければならず、人々はPythonやプログラミングに関する知識を持っていないので、ソフトウェアを使用しなければなりません。最終的なユーザーは、変数の値を変更し、実行可能ファイルをクリックしてプログラムを実行するだけです。このため、できるだけ多くのPythonコマンドを使わないようにしたい。あなたの設定ファイルは、Pythonで書かれている必要はありません
import imp
def read_inputFile(path):
file = open(path)
variables = imp.load_source('data', '', file)
file.close()
return variables
答えに感謝します。私は少し明確にするために私の質問を更新しました。私は 'configparser'のアイデアが気に入っていますが、あなたが言うように、構文をちょっと調整しなければなりません。それを回避する方法はありますか?それ以外の場合は 'configparser'に移動します。 – cicciodevoto
@cicciodevoto:あなたの設定ファイルは* Pythonファイルです。そうでなければ、 'imp'はそれを読み込めません。 Pythonの複雑さが気に入らなければ、それを使わないでください。 – Kevin
はい、あなたは間違いなく、Pythonファイルです。アドバイスをいただきありがとうございます。 – cicciodevoto