38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
import sys
|
|
import csv
|
|
from pathlib import Path
|
|
|
|
def fix_decimal_csv(input_path, output_path):
|
|
with open(input_path, 'r', newline='', encoding='utf-8') as infile, \
|
|
open(output_path, 'w', newline='', encoding='utf-8') as outfile:
|
|
reader = csv.reader(infile)
|
|
writer = csv.writer(outfile)
|
|
# Write the first line (scene name) as is
|
|
scene_line = next(reader)
|
|
writer.writerow(scene_line)
|
|
# Write the header as is (if present)
|
|
header = next(reader)
|
|
writer.writerow(header)
|
|
for row in reader:
|
|
# Keep first two columns as is
|
|
fixed_row = row[:2]
|
|
# Join every pair of columns from the third onward
|
|
for i in range(2, len(row), 2):
|
|
if i+1 < len(row):
|
|
fixed_val = f'{row[i]}.{row[i+1]}'
|
|
fixed_row.append(fixed_val)
|
|
writer.writerow(fixed_row)
|
|
|
|
if __name__ == '__main__':
|
|
# Find all matching CSVs recursively
|
|
root = Path('.')
|
|
out_root = root / 'Recordings'
|
|
out_root.mkdir(exist_ok=True)
|
|
csv_files = list(root.rglob('P*_PositionData*.csv'))
|
|
for csv_file in csv_files:
|
|
# Compute output path in Recordings dir, preserving subdirs
|
|
rel_path = csv_file.relative_to(root)
|
|
out_path = out_root / rel_path
|
|
out_path.parent.mkdir(parents=True, exist_ok=True)
|
|
fix_decimal_csv(csv_file, out_path)
|
|
print(f'Corrected file written to: {out_path}') |