Python htmlの&_amp;(_を抜いて) の使用例

& シーケンスはよく目にすることがあると、思います。&_amp;は自分自身を&に変えます。&_lt;,&_gt;(&lt;,&gt;)これですよね。これは<>とは区別できます。<>の中に&_lt;と&_gt;は別の物と認識されます。<>この中に書き込めます<>それで、<>はスプリットに使えます。
    また、&lt;br&gt;これは知っていますよね。改行記号です。\\n(h0d0a)です。普通に書くと、ファイル内もテキストも改行しますが、&lt;br&gt;にすると、起こりません、ニューラインが。実はとても、便利なんですよ。
あまり使わない&_quot; &quot; これ、非常に面倒なんです。文の中に1個だけ使おうとする時、でも、2個だと、閉じてしまうか、エラーになるんです。接続子がないからです。
とまぁ、便利なのは、分っていただいた所で、これって、勝手に「テンポラリシーケンス」として、作られる、て知っていましたか?
念のため\\nを&lt;br&gt;に変えて、\\nを今後に使えるように、変数を置換します。その後、ファイルに変えるシーケンス(&amp;wl_0;)を中に使っていても大丈夫なように&を&amp;amp;に変えるのですそうすることで同一名が、無くなります。
その後、\\nに変えて&amp;wl_0;を入れて変数を配列から一つの変数に繋ぎます。さらに配列の別の配列を繋ぐのに&amp;wl_1;を入れます。配列か変数に一個として入りますよね。最後に閉めとして\\nを入れます。もちろんこの後に変数としてまとめる配列を入れられます。配列として。
では、参考資料として、pythonのを載せます。
```python
#!C:/Python3/python_3_12_0_embed_amd64/python -X utf8
# coding=utf-8

print ('Content-type:text/html'+'\n'+'\n')
print ('<!DOCTYPE html><html lang="ja"><head><meta charset="UTF-8"><title>pyton_v3</title></head><BODY BGCOLOR="#ffffff"><h1>test decoder3</h1>'+'\n')
print ('<p>日本語を話せる、システムです。「This is a system that allows you to speak Japanese.」<br>\n')
print ('カンニングペーパー「コピペオンライン英和翻訳 『Multilingal Online Translation』」はMicrosoftストアーで。<br>\n')
print ('The cheat sheet \"Copy and Paste Online English-Japanese Translation 『Multilingal Online Translation』\" is available at the Microsoft Store.<br>\n')
print ('ブラウザ、拡張機能もお忘れなく。わからない時は、質問AIですよ。「Don\'t forget your browser and extensions. When you don\'t understand, there is a question AI.」</p><br>\n')

# import re
import datetime

now = datetime.datetime.now()
formatted_date = now.strftime("%Y/%m/%d %H:%M:%S")
it_day = now.strftime("%Y年%m月%d日")
it_time = now.strftime("%H時%M分%S秒")

# mydisp = re.sub(r'\x','%', 'abcIt let1def<br>\n')
# print (mydisp)
#decode()
#def decode():
my_hash = {}
my_hash['name'] = ''
my_hash['subm'] = ''
my_hash['comment'] = ''
my_hash['url'] = ''
my_hash['l_tim'] = formatted_date
my_hash['num'] = '0'
my_hash['to_day'] = it_day
my_hash['day_cou'] = '0'
my_hash['Not_reserved'] = 'unknown'

come = ''

data_file_name = 'file.txt'

in_d = {}
in_d['apple'] = '100'
in_d['banana'] = '150'
in_d['cherry'] = '200'
print ('it let2<br>\n')
print ('this aplle to '+in_d['apple']+'yen<br>\n')
in_d['apple'] = '110'
print ('pey applo to '+in_d['apple']+'yen<br>\n')
file_path_xlsx = r"C:\Users\UserName\Documents\Example.xlsx"
#人気者やなぁ
import cgi

text = []
#    f = open('python_test2.txt', 'r')
    #自分開いていると読み込めないcgiは、サーバーが実行する
#    for line in f:
#        text.append(line)
      #  print(line)

#    f.close()


#print(<a href=\"http://127.0.0.1/my_python/python_test3.html\" target=\"~_blank\">pythonのソースファイル</a><br>\n')
#print('Content-Type: text/plain\n\n')
#print(text)
#print("")
#print('<br><a href=\"http\">なにか</a><br>\n')


#return
import os
import re
import sys

req_met = os.environ.get('REQUEST_METHOD')
print ('it let2_1<br>\n')
if req_met == 'POST' :
    for query in sys.stdin:
        os.environ.get('CONTENT_LENGTH')
        pass

else :
    query = os.environ.get('QUERY_STRING')

if len(query) > 10 :
    language = len(query)
    print (f'largebyte: 10 {language}<br>\n') #test message after get out;F(x)Qestit??

print ('it let2_2<br>\n')

print (query+' buf <br>\n')

buf_arrey = query.split("&")

print (buf_arrey)
print ('<br>\n')
print ('it let2_3<br>\n')
separator = '<br>'
#tmp_arrey = separator.join(buf_arrey)
#print (tmp_arrey)
#print ('<br>\n')

key0=''
value0=''
n_n = 0
print ('it let2_4<br>\n')
if "" not in buf_arrey :
    for my_buf in buf_arrey :
        print (f'{n_n}kai<br>\n')
        (key0, value0) = my_buf.split("=")
        # if "%" in key0 :
        key0 = re.sub(r'%([0-9a-fA-F][0-9a-fA-F])', lambda x: chr(int(x.group(1), 16)), key0)
        key0 = re.sub(r'\+', ' ', key0)
        key0 = re.sub(r'&', '&amp;', key0)
        key0 = re.sub(r'<', '&lt;', key0)
        key0 = re.sub(r'>', '&gt;', key0)
        key0 = re.sub(r'\r\n', '<br>', key0)
        key0 = re.sub(r'\r|\n', '<br>', key0)
        my_key = key0
        value0 = re.sub(r'%([0-9a-fA-F][0-9a-fA-F])', lambda x: chr(int(x.group(1), 16)), value0)
        value0 = re.sub(r'\+', ' ', value0)
        value0 = re.sub(r'&', '&amp;', value0)
        value0 = re.sub(r'<', '&lt;', value0)
        value0 = re.sub(r'>', '&gt;', value0)
        value0 = re.sub(r'\r\n', '<br>', value0)
        value0 = re.sub(r'\r|\n', '<br>', value0)





        my_val = value0
        if my_key == 'comment':
            value0 = re.sub(r'<br>', '\n', value0)
            come = value0

        #I can't get around to it, so I'll try putting it out.
        my_hash[my_key] = my_val

        n_n += 1
        print (f'key={my_key} value={my_val}<br>\n')


key_list0 = list(my_hash.keys())
print(key_list0)
print ('<br>\n')
for i, val0 in enumerate(key_list0):
    if i == len(key_list0) - 1:
        print('last: '+val0+' '+my_hash[val0]+'<br>\n')
    else:
        print('middle '+val0+' '+my_hash[val0]+'<br>\n')


print ('it let2_x_1:'+my_hash['num']+'<br>\n')
if my_hash['num'] == '' :
    my_hash['num'] = '0'

number = int(my_hash['num']) + 1
my_hash['num'] = str(number)
my_list = my_hash['name']+'<>'+my_hash['subm']+'<>'+my_hash['comment']+'<>'+my_hash['url']+'<>'+my_hash['l_tim']+'<>'+my_hash['num']+'<>'+my_hash['to_day']+'<>'+my_hash['day_cou']+'<>'+my_hash['Not_reserved']

if os.path.exists(data_file_name):
    #fileがあれば読み込む
    with open(data_file_name, 'r') as f:
      tmp_list_in = f.readlines()

    #f = open(data_file_name, 'r')
    #for line in f:
    #    tmp_list_in.append(line)
    #    print(line)

    #f.close()

    if tmp_list_in:
        result1 = re.search('&wl_1;', tmp_list_in[0])
        if result1:
            arrey_arrey = tmp_list_in[0].split("&wl_1;")
            tmp_list_in[0] = arrey_arrey[0]

        result0 = re.search('&wl_0;', tmp_list_in[0])
        if result0:
            my_list_arrey = tmp_list_in[0].split("&wl_0;")

            n=0
            for tmp_i in my_list_arrey :
                tmp_i = re.sub(r'&amp;', '&', tmp_i)
                my_list_arrey[n] = tmp_i
                n += 1

           # number = int(my_list_arrey[5]) + 1
            #   number = '{0.0}'.format(my_list_arrey[5]) + 1.0
           # my_hash['num'] = str(number)

        #else:
            #わたしの書式のファイルでないとき
            #エラー関数を呼び出し終わる。書き換えるわけにいかんだろう。

    else:
        #空のファイルの時または、消えた時
        my_hash['num'] = '100'
        my_list_arrey=[my_list]

else:

    my_list_arrey=[my_list, my_list]

    with open(data_file_name, 'w') as f:
        for item in my_list_arrey:
           f.write(f"{item}&wl_0;")
           f.write('&wl_1;')

        for item in my_list_arrey:
            f.write(f"{item}&wl_0;")
            f.write('&wl_1')

        for item in my_list_arrey:
            f.write(f"{item}&wl_0;")
            f.write('\n')

            #ファイルの書き込みすべて終わるとクローズ

print ('it let2_5<br>\n')
new_my_list_arrey= []
if my_hash['comment'] != "" :
#name,subm,come,url,
    if len(my_list_arrey) != 0:
        if my_list_arrey[0] != my_list:
            my_list_arrey.insert(0, my_list)
            for my_my_lis in my_list_arrey :
                result = re.search('<>', my_my_lis)
                if result:
                    new_my_list_arrey.append(my_my_lis)

            my_list_arrey = my_list_arrey[:0]

            for my_my_lis in new_my_list_arrey :
                result = re.search('<>', my_my_lis)
                if result:
                    my_list_arrey.append(my_my_lis)

            #my_list_arrey.insert(0, my_list)
    else:
        my_list_arrey.insert(0, my_list)

#if(my_list =='<><><><><><>') is not  my_list_arrey[0] != my_list :bato
#    my_list_arrey.insert(0, my_list)
else:
    my_listem = my_list_arrey[0]
    l_dat = my_listem.split("<>")
    my_hash['name'] = l_dat[0]
    my_hash['url'] = l_dat[3]

if len(my_list_arrey) > 6:
    my_list_arrey = my_list_arrey[:6]
print ('it let2_6<br>\n')
#with open('file.txt', 'w') as f:
#    f.write(my_list_arrey)
n=0
for tmp_i in my_list_arrey:
    tmp_i = re.sub(r'&', '&amp;', tmp_i)
    my_list_arrey[n] = tmp_i
    n += 1
unit = 0
with open(data_file_name, 'w') as f:
    for item in my_list_arrey:
        f.write('%s&wl_0;' % item)

    f.write("&wl_1;")
    #for joint &wl_1;'arrey1["<><br><>"&wl_0"<>&(amp;)lt;&(amp;)gt;<>"&wl_0"<><><>"] &wl_1 arrey2 ..' \n (1 line)inarrey(\n=><br>)
    for item in my_list_arrey:
        f.write('%s&wl_0;' % item)

    f.write("\n")

# chng"%s\n; =>"%s&wl;"ここの \n 細工して最後に入れれは　配列 in 配列 だわ&wl_n_m;とか　この場合\n='<br>'に変えられているが。


print('<br><br>\n')
print("現在の日付と時刻: ", now)
print('<br>'+formatted_date+' Japanise style. きょうは、'+it_day+'で時計は'+it_time+'<br>\n')

# def validate_buf(query):
#    pattern = r"\x"

#    if len(query) != len(re.findall(pattern, query)):
#        print('buf is \\x include.<br>\n')

print ('it let2_7<br>\n')

#form()


#def form():
print ('it let3<br>\n')


print ('<form action=\"http://127.0.0.1/my_python/python_test3.cgi\" method=\"POST\">\n')
print ('<table border=0 cellspacing=1>\n')
#in_d['name'] = ''
print ('<tr><td><b>name</b></td><td><input type=text name=name size=28 value=\"'+my_hash['name']+'\" maxlength=\"12\" class=f></td></tr>\n')
#in_d['subm'] = ''
print ('<tr><td><b>submit</b></td><td><input type=text name=subm size=36 value=\"'+my_hash['subm']+'\" maxlength=\"36\"class=f></td></tr>'+'\n')
#in_d['comment'] = ''
print ('<tr><td colspan=2><b>comment</b><br><textarea cols=70 rows=7 name=comment wrap=\"soft\" class=f>'+come+'</textarea></td></tr>'+'\n')
#in_d['url'] = ''
print ('<tr><td><b>url</b></td><td><input type=text size=52 name=url value=\"'+my_hash['url']+'\" maxlength=\"60\" class=f></td></tr>'+'\n')

print ('<tr><td><input type=submit value=\"submit\"></td><td><input type=reset value=\"reset\"></td></tr>\n')
print ('</form></table><br>\n')
#come = ''
print ('name='+my_hash['name']+'<br>'+my_hash['comment']+'<br>It OK?<br>\n')
print (my_list_arrey)

in_name=''
in_subm=''
in_come=''
in_url=''
in_time=''

for my_line in my_list_arrey:
    myli_arr = my_line.split("<>")
    in_name = myli_arr[0]
    in_subm = myli_arr[1]
    in_come = myli_arr[2]

    in_come = re.sub(r'````?`?`?`?`?`?`?', '```', in_come)
    in_valle_arrey = in_come.split('```')
    new_in_valle = []
    n = 0
    for out_v in in_valle_arrey:
        if n % 2 == 0:
            out_v = re.sub(r'&amp;','&',out_v)
            out_v = re.sub(r'&gt;','>',out_v)
            out_v = re.sub(r'&lt;','<',out_v)

        new_in_valle.append(out_v)
        n += 1

    separator = '```'
    in_come = separator.join(new_in_valle)

    in_url = myli_arr[3]
    in_time = myli_arr[4]
    in_nomber = myli_arr[5]
    in_to_d = myli_arr[6]
    in_da_co= myli_arr[7]
    #in_unno = myli_arr[8]
    print('<br>Title:<font color=\"#0000ff\"><b>'+in_subm+' </b></font>:is '+in_time+'<br><b>Coment</b> '+in_nomber+'<br>'+in_come+'<br><font color=\"#ff0000\"><b>End</b></font><br>\n')
    myli_arr = myli_arr[:0]

#return

#
key_list = list(in_d.keys())
print(key_list)
print ('<br>\n')
for i, val in enumerate(key_list):
    if i == len(key_list) - 1:
        print('last: '+val+' '+in_d[val]+'<br>\n')
    else:
        print('middle '+val+' '+in_d[val]+'<br>\n')

print ('<br><a href="python_html.html">index</a><br>\n')
print ('</body></html>\n')
exit()

```
いろいろな応用を探してみてください。VB のarrey を繋いだり(足したり)出来ますよ。