# -*- coding: utf-8 -*-
# ImageJでとったラインプロファイルについて、濃度ピークの間隔を算出するためのコード
# 必要なモジュールの読み込み
import sys
import os
import re
from string import *
#文字コード指定に必要
import codecs
#パス指定小楽でスクリプト配置フォルダのファイル一覧取得
files = os.listdir('C:\\test')
for file in files:
#まず.txtを含むファイルのみ読込
txt = re.compile(".txt")
if txt.search(file):
# 入力ファイルを開く
indat = codecs.open(file, "r", 'shift_jis')
# 開いた入力ファイルを読む準備
inline = indat.readline()
# 読み込んだデータをディクショナリとして保存
data_dic = {}
# 開いたファイルを順番に最後の行まで読む
while inline:
# データを収めるために空のリストを作成。ループするたび、リストを空にする
data_list = []
# 各行がキーワードに当てはまるかチェックし、キーワードに当てはまる行に対し、カンマで文章を区切り、必要な情報だけを取り出す。
first = strip(re.split('\t', inline)[0])
second = strip(re.split('\t', inline)[1])
pixel = int(first)
density = double(second)
# データをリストとして保存
data_list = [density]
# リストに収めたデータをディクショナリに収める。ディクショナリのキーには、CASTのIDを使う
data_dic[pixel] = data_list
# 次の行を読む
inline = indat.readline()
# 入力ファイルを閉じる
indat.close()
#画像濃度ピークのピクセルを入れる配列
peak = []
# ディクショナリの各アイテムにアクセスし、データをテキスト形式にフォーマットして書きだす
for d in data_dic.keys():
# ディクショナリの1つのアイテムを取り出す
unpacked = data_dic[d]
if data_dic[d] > data_dic[d-2] > data_dic[d-1]:
flag1 = 1
else:
flag1 = 0
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIyBJbWFnZUrjgafjgajjgaPjgZ/jg6njgqTjg7Pjg5fjg63jg5XjgqHjgqTjg6vjgavjgaTjgYTjgabjgIHmv4Pluqbjg5Tjg7zjgq/jga7plpPpmpTjgpLnrpflh7rjgZnjgovjgZ/jgoHjga7jgrPjg7zjg4kKI+OAgOW/heimgeOBquODouOCuOODpeODvOODq+OBruiqreOBv+i+vOOBvwppbXBvcnQgc3lzCmltcG9ydCBvcwppbXBvcnQgcmUKZnJvbSBzdHJpbmcgaW1wb3J0ICoKI+aWh+Wtl+OCs+ODvOODieaMh+WumuOBq+W/heimgQppbXBvcnQgY29kZWNzCgoj44OR44K55oyH5a6a5bCP5qW944Gn44K544Kv44Oq44OX44OI6YWN572u44OV44Kp44Or44OA44Gu44OV44Kh44Kk44Or5LiA6Kan5Y+W5b6XCmZpbGVzID0gb3MubGlzdGRpcignQzpcXHRlc3QnKQpmb3IgZmlsZSBpbiBmaWxlczoKICAgICPjgb7jgZoudHh044KS5ZCr44KA44OV44Kh44Kk44Or44Gu44G/6Kqt6L68CiAgICB0eHQgPSByZS5jb21waWxlKCIudHh0IikKICAgIGlmIHR4dC5zZWFyY2goZmlsZSk6CgogICAgICAgICPjgIDlhaXlipvjg5XjgqHjgqTjg6vjgpLplovjgY8KICAgICAgICBpbmRhdCA9IGNvZGVjcy5vcGVuKGZpbGUsICJyIiwgJ3NoaWZ0X2ppcycpCgogICAgICAgICMg6ZaL44GE44Gf5YWl5Yqb44OV44Kh44Kk44Or44KS6Kqt44KA5rqW5YKZCiAgICAgICAgaW5saW5lID0gaW5kYXQucmVhZGxpbmUoKQoKICAgICMg6Kqt44G/6L6844KT44Gg44OH44O844K/44KS44OH44Kj44Kv44K344On44OK44Oq44Go44GX44Gm5L+d5a2YCiAgICBkYXRhX2RpYyA9IHt9CgogICAgIyDplovjgYTjgZ/jg5XjgqHjgqTjg6vjgpLpoIbnlarjgavmnIDlvozjga7ooYzjgb7jgafoqq3jgoAKICAgIHdoaWxlIGlubGluZToKIAogICAgICAgICAj44CA44OH44O844K/44KS5Y+O44KB44KL44Gf44KB44Gr56m644Gu44Oq44K544OI44KS5L2c5oiQ44CC44Or44O844OX44GZ44KL44Gf44Gz44CB44Oq44K544OI44KS56m644Gr44GZ44KLCiAgICAgICAgIGRhdGFfbGlzdCA9IFtdCiAKICAgICAgICAgIyDlkITooYzjgYzjgq3jg7zjg6/jg7zjg4njgavlvZPjgabjga/jgb7jgovjgYvjg4Hjgqfjg4Pjgq/jgZfjgIHjgq3jg7zjg6/jg7zjg4njgavlvZPjgabjga/jgb7jgovooYzjgavlr77jgZfjgIHjgqvjg7Pjg57jgafmlofnq6DjgpLljLrliIfjgorjgIHlv4XopoHjgarmg4XloLHjgaDjgZHjgpLlj5bjgorlh7rjgZnjgIIKICAgICAgICAgZmlyc3QgPSBzdHJpcChyZS5zcGxpdCgnXHQnLCBpbmxpbmUpWzBdKQogICAgICAgICBzZWNvbmQgPSBzdHJpcChyZS5zcGxpdCgnXHQnLCBpbmxpbmUpWzFdKQogICAgICAgICAKICAgICAgICAgcGl4ZWwgPSBpbnQoZmlyc3QpCiAgICAgICAgIGRlbnNpdHkgPSBkb3VibGUoc2Vjb25kKQoKICAgICAgICAgIyDjg4fjg7zjgr/jgpLjg6rjgrnjg4jjgajjgZfjgabkv53lrZgKICAgICAgICAgZGF0YV9saXN0ID0gW2RlbnNpdHldCiAgICAgICAgIAogICAgICAgICAjIOODquOCueODiOOBq+WPjuOCgeOBn+ODh+ODvOOCv+OCkuODh+OCo+OCr+OCt+ODp+ODiuODquOBq+WPjuOCgeOCi+OAguODh+OCo+OCr+OCt+ODp+ODiuODquOBruOCreODvOOBq+OBr+OAgUNBU1Tjga5JROOCkuS9v+OBhgogICAgICAgICBkYXRhX2RpY1twaXhlbF0gPSBkYXRhX2xpc3QKCiAgICAgICAgICMg5qyh44Gu6KGM44KS6Kqt44KACiAgICAgICAgIGlubGluZSA9IGluZGF0LnJlYWRsaW5lKCkKCiMg5YWl5Yqb44OV44Kh44Kk44Or44KS6ZaJ44GY44KLCmluZGF0LmNsb3NlKCkKCiPnlLvlg4/mv4Pluqbjg5Tjg7zjgq/jga7jg5Tjgq/jgrvjg6vjgpLlhaXjgozjgovphY3liJcKcGVhayA9IFtdCgojIOODh+OCo+OCr+OCt+ODp+ODiuODquOBruWQhOOCouOCpOODhuODoOOBq+OCouOCr+OCu+OCueOBl+OAgeODh+ODvOOCv+OCkuODhuOCreOCueODiOW9ouW8j+OBq+ODleOCqeODvOODnuODg+ODiOOBl+OBpuabuOOBjeOBoOOBmQpmb3IgZCBpbiBkYXRhX2RpYy5rZXlzKCk6CgogICAgI+OAgOODh+OCo+OCr+OCt+ODp+ODiuODquOBrjHjgaTjga7jgqLjgqTjg4bjg6DjgpLlj5bjgorlh7rjgZkKICAgIHVucGFja2VkID0gZGF0YV9kaWNbZF0KCiAgICBpZiBkYXRhX2RpY1tkXSA+IGRhdGFfZGljW2QtMl0gPiBkYXRhX2RpY1tkLTFdOgogICAgICAgIGZsYWcxID0gMQogICAgICAgIAogICAgZWxzZToKICAgICAgICBmbGFnMSA9IDAKICAgICAgICAKICAgICAgICA=