ナルシーNote

2020年12月からC#、2021年2月からPythonを51歳で始めました。学んだことを備忘録として残してます。そろそろN88BASICは卒業しようかな😱

<Python>文字列をテキストファイルから読む

設定ファイルのサンプルです。

テキストファイルをディクショナリに入れて変数のように使用してみました。

 

settings.txt

# 設定ファイルのサンプル
item1 = バナナ #TABは消す item2 = りんご #より後ろはコメント扱い item3 = みかん


こちらがコードです。

# coding: utf-8
import os

class Settings:
    ___settings = {"filename":""}
    
    def __init__(self, filename = "settings.txt"):
        self.___filename = filename
        self.___settings["filename"] = filename
        
    def settings(self, itemname):
        if itemname not in self.___settings:
            return ""
        else:
            return self.___settings[itemname]
        
    def loadsettings(self):
        cwd = os.getcwd() #実行中の場所
        cwd_f = cwd + "/" + self.___filename
        print(cwd_f)
        if os.path.isfile(cwd_f) == True:       
            # 他でFileShare.Read で開いていても読める
            with open(self.___filename, encoding='shift-jis') as f:
            #with open(self.___filename, encoding='utf-8') as f:
                test_data = f.read()
        else:
            print ("ふぁいるがないよ~!")
            return (False)

        if len(test_data) > 0 :
            lines = test_data.split('\n')
            for line in lines:
                s = line.replace("\t", "")  #TABは消す
                if "#" in s:                #より後ろはコメント
                    csv = s.split("#")
                    s = csv[0]
                if "=" in s:       
                    values = s.split("=")
                    if values[0].strip() not in self.___settings:
                        self.___settings[values[0].strip()] = values[1].strip()
        return (True)
    

if __name__ == '__main__':
    app = Settings("settings.txt")           
    if app.loadsettings():
        print ("あいてむ1は" + app.settings("item1"))
        print ("あいてむ2は" + app.settings("item2"))
        print ("あいてむ3は" + app.settings("item3"))
        print ("あいてむ4は" + app.settings("item4"))
    print("End")

 

ご使用に関しては自己責任でよろしくお願い申し上げます。

 

2021年2月にpaizaラーニングでPythonを受講しました。

コメントでアドバイスをいただけると幸いです。

 

ほしい物リスト

ナルシーのほしい物リストはこちら