私は 181 個のテキスト ファイルのフォルダーを持っており、それぞれに数字が含まれていますが、「サイズ」を持つ行のファイルに 0.5 などの定数変数を掛けるだけで済みますが、次のようにしてこれを達成しました:数学演算を検索して結果に置き換えますNotepad ++で しかし、私がやろうとしているのは、式や引用符を使用しないことです。これにより、私が参加しているコミュニティの他のメンバーは、各数値を乗算するために必要な形式に合わせてすべてのファイルを編集することなく、同じことを簡単に行うことができます. 例えば:
farmers = {
culture = armenian
religion = coptic
size = 11850
}
を 0.5 倍して次のようにします。
farmers = {
culture = armenian
religion = coptic
size = 5925
}
私はPythonスクリプトを作成しようとしましたが、あまりPythonを知りませんがうまくいきませんでした:
import operator
with open('*.txt', 'r') as file:
data = file.readlines()
factor = 0.5
count = 0
for index, line in enumerate(data):
try:
first_word = line.split()[0]
except IndexError:
pass
if first_word == 'size':
split_line = line.split(' ')
# print(' '.join(split_line))
# print(split_line)
new_line = split_line
new_line[-1] = ("{0:.6f}".format(float(split_line[-1]) * factor))
new_line = ' '.join(new_line) + '\n'
# print(new_line)
data[index] = new_line
count += 1
elif first_word == 'text_scale':
split_line = line.split(' ')
# print(split_line)
# print(' '.join(split_line))
new_line = split_line
new_line[-1] = "{0:.2f}".format(float(split_line[-1]) * factor)
new_line = ' '.join(new_line) + '\n'
# print(new_line)
data[index] = new_line
count += 1
with open('*.txt', 'w') as file:
file.writelines(data)
print("Lines changed:", count)
これに対する解決策はありますか?私は、コミュニティの人々がすべてのファイルをフォーマットして、私のソリューションで作業できるようにするわけではありません。notepad ++またはSublime Text 3を使用している人にとって、誰でもすばやく簡単に理解できる簡単なソリューションが見つからなかったというだけで、何でもうまくいく可能性があります.