名前が単なる数字であるファイルがたくさんあります。 (1から最大数まで)から始まり、これらのファイルはそれぞれ "tags"(ObjectID =、X =、Y =など)によって互いに似ていますが、それらのタグの後の値は同じではありませんまったく。テキストファイルから出力ファイルにデータを抽出する
1つのファイルから別のファイルにデータを手動でコピー/貼り付けし、Pythonを使用して小さなスクリプトを作成することから仕事を簡単にしたいと思っていました。
これは完全なスクリプトです:(
ObjectID = 1216
X = -1480.500610
Y = 2610.885742
ObjectID = 970
X = -1517.210693
Y = 2522.842285
ObjectID = 3802
X = -1512.156616
Y = 2521.116210
etc.
しかし、私はそれがそのようにしたくない:
import os
BASE_DIRECTORY = 'C:\Users\Tom\Desktop\TheServer\scriptfiles\Objects'
output_file = open('output.txt', 'w')
output = {}
file_list = []
for (dirpath, dirnames, filenames) in os.walk(BASE_DIRECTORY):
for f in filenames:
if 'txt' in str(f):
e = os.path.join(str(dirpath), str(f))
file_list.append(e)
for f in file_list:
print f
txtfile = open(f, 'r')
output[f] = []
for line in txtfile:
if 'ObjectID =' in line:
output[f].append(line)
elif 'X =' in line:
output[f].append(line)
elif 'Y =' in line:
output[f].append(line)
tabs = []
for tab in output:
tabs.append(tab)
tabs.sort()
for tab in tabs:
for row in output[tab]:
output_file.write(row + '')
今、すべてが正常に動作している、出力ファイルは次のようになります各値に新しい行があります)。私はすべてのファイルについてこれを行う必要があります:
- ファイルを読みます。
- 値の前のタグを削除します。
- 出力フォルダにこれらの値を持つ単一の行をフォーマットします。 (これを次のようにしたいとします: "(1216、-1480.500610,2522.842285)")
- その行を出力フォルダに書き込みます。
- すべてのファイルに対して繰り返します。
助けてください。あなたのループでは
あなたが読む必要があるファイルからいくつかのサンプル行を貼り付けることができますか? – Kruser
出力行と同じ –
値を1行に追加するコードを追加しました。 – Kruser