125 lines
5.4 KiB
Python
125 lines
5.4 KiB
Python
import sys, os, re
|
||
sys.stdout.reconfigure(encoding='utf-8')
|
||
|
||
merged_file = "resources/knowledge/original/원가계산/건설공사_표준품셈/2026년_건설공사_표준품셈.md"
|
||
with open(merged_file, 'r', encoding='utf-8') as f:
|
||
text = f.read()
|
||
|
||
# 1. Restore (7101) 고성능 착정기 in merged file
|
||
# Find line around 8192
|
||
pattern_7101 = re.compile(r'\[주\]\s*①\s*샹크.*?\(7101\)[^\n]+\(7103\)', re.DOTALL)
|
||
m7101 = pattern_7101.search(text)
|
||
if m7101:
|
||
print(f"Matched 7101 in merged, len={len(m7101.group(0))}")
|
||
restored_7101 = """[주] ① 샹크, 로드, 비트, 캡 등 부속장비가 포함되어 있다.
|
||
|
||
(7101) 고성능 착정기
|
||
|
||
| 분류 번호 | 규 격 | 내용 시간 | 연간 표준 가동 시간 | 상각 비율 | 정비 비율 | 연간 관리 비율 | 시 간 당(10-7) | | | |
|
||
|---|---|---|---|---|---|---|---|---|---|---|
|
||
| | | | | | | | 상각비 계수 | 정비비 계수 | 관리비 계수 | 계 |
|
||
| 7101-0450 | 335.70㎾ | 6,300 | 800 | 0.9 | 0.65 | 0.1 | 1,429 | 1,032 | 759 | 3,220 |
|
||
|
||
[주] ① 트럭 적재식이고 공기압축기 및 동력이 포함되어 있다.
|
||
- ② 로드, 비트, 케이싱 등은 별도 계상한다.
|
||
- ③ 지하수개발용이다.
|
||
|
||
(7103)"""
|
||
text = text[:m7101.start()] + restored_7101 + text[m7101.end()-6:]
|
||
print("Successfully restored (7101) in merged file!")
|
||
else:
|
||
print("Could not match 7101 pattern in merged file.")
|
||
|
||
# 2. Restore 1-2-2 in merged file
|
||
pattern_122 = re.compile(r'\|\s*돌\s*쌓\s*기\s*및\s*돌\s*붙\s*임\s*사\s*석.*?\n', re.DOTALL)
|
||
m122 = pattern_122.search(text)
|
||
if m122:
|
||
print(f"Matched 1-2-2 in merged, len={len(m122.group(0))}")
|
||
restored_122 = """| 돌 쌓 기 및 돌 붙 임 | ㎝ | - | ㎡ | 1 | |
|
||
| 사 석 ( 捨 石 ) | ㎝ | - | ㎥ | 1 | |
|
||
| 다 듬 돌 ( 切 石 , 板 石 ) | ㎝ | - | 개 | 2 | |
|
||
| 벽 돌 | ㎜ | - | 개 | - | |
|
||
| 블 록 | ㎜ | - | 개 | - | |
|
||
| 시 멘 트 | - | - | ㎏ | - | |
|
||
| 모 르 타 르 | - | - | ㎥ | 2 | |
|
||
| 콘 크 리 트 | - | - | ㎥ | 2 | |
|
||
| 석 분 | - | - | ㎏ | - | |
|
||
| 석 회 | - | - | ㎏ | - | |
|
||
| 화 산 회 | - | - | ㎏ | - | |
|
||
| 아 스 팔 트 | - | - | ㎏ | - | |
|
||
| 목 재 ( 판 재 ) | 길이m | 1 | ㎡ | 2 | |
|
||
| 목 재 ( 판 재 ) | 폭,두께 | 1 | ㎥ | 3 | |
|
||
| 목 재 ( 판 재 ) | ㎝ | 1 | ㎥ | 3 | |
|
||
| 합 판 | ㎜ | - | 장 | 1 | |
|
||
| 말 뚝 | 길이m 지름㎜ | 1 - | 개 | - | |
|
||
| 철 강 재 | ㎜ | - | ㎏ | 3 | 총량표시는 ton으로 한다. |
|
||
| 용 접 봉 | ㎜ | - | ㎏ | 1 | |
|
||
| 구 리 판 , 함 석 류 | - | - | ㎡ | 2 | |
|
||
| 철 근 | ㎜ | - | ㎏ | - | |
|
||
| 볼 트 , 너 트 | ㎜ | - | 개 | - | |
|
||
| 꺽 쇠 | ㎜ | - | 개 | - | |
|
||
| 철 선 류 | ㎜ | 1 | ㎏ | 2 | |
|
||
| P C 강 선 | - | - | ㎏ | 2 | |
|
||
| 돌 망 태 | 길이m 지름m 높이m | 1 위 - - | m 개 | 1 - | 망눈(網目)㎝ |
|
||
| 로 프 류 | ㎜ | - | m | 1 | |
|
||
| 못 | 길이㎝ | 1 | ㎏ | 2 | |
|
||
| 석 유 , 휘 발 유 , 모 빌 유 | - | - | ℓ | 2 | |
|
||
| 구 리 스 | - | - | ㎏ | 2 | |
|
||
| 넝 마 | - | - | ㎏ | 2 | |
|
||
| 화 약 류 | - | - | ㎏ | 3 | |
|
||
| 뇌 관 | - | - | 개 | - | |
|
||
| 도 화 선 | - | - | m | 1 | |
|
||
| 석 탄 , 목 탄 , 코 크 스 | - | - | ㎏ | 1 | |
|
||
| 산 소 | - | - | ℓ | - | |
|
||
| 카 바 이 트 | - | - | ㎏ | 1 | |
|
||
"""
|
||
text = text[:m122.start()] + restored_122 + text[m122.end():]
|
||
print("Successfully restored 1-2-2 in merged file!")
|
||
else:
|
||
print("Could not match 1-2-2 pattern in merged file.")
|
||
|
||
# 3. Restore 1-2-7 in merged file
|
||
pattern_127 = re.compile(r'\|\s*주\s*철\s*관.*?\|\n', re.DOTALL)
|
||
m127 = pattern_127.search(text)
|
||
if m127:
|
||
print(f"Matched 1-2-7 in merged, len={len(m127.group(0))}")
|
||
restored_127 = """| 주 철 관 | ø80㎜∼150㎜ L=6.0m | 본 | 42∼111 | 46∼123 | - | - | |
|
||
| 〃 | 200∼450 〃 | 〃 | 9∼30 | 10∼34 | - | - | |
|
||
| 〃 | 500∼600 〃 | 〃 | 6 | 6∼9 | - | - | |
|
||
| 〃 | 700∼900 〃 | 〃 | 3 | 3∼5 | - | - | |
|
||
| 〃 | 1,000〃 | 〃 | 2 | 2 | - | - | |
|
||
| 도복장강관 | ø300㎜∼450㎜ L=6.0m | 본 | 10∼18 | 14∼22 | - | - | |
|
||
| 〃 | 500∼700〃 | 〃 | 3∼9 | 6∼10 | - | - | |
|
||
| 〃 | 800∼1,000〃 | 〃 | 1∼3 | 3 | - | - | |
|
||
| 〃 | 1,200∼2,100〃 | 〃 | 1 | 1 | - | - | |
|
||
| 〃 | 2,200∼2,300〃 | 〃 | - | 1 | - | - | |
|
||
| P ・C 파일 | ø300㎜∼440㎜ L=9.0m | 본 | - | - | 6∼10 | 11∼18 | |
|
||
| 〃 | 450∼500 〃 | 〃 | - | - | 4∼5 | 8∼9 | |
|
||
| 시 멘 트 | 40㎏ | 대 | 150 | 200 | 275 | 637 | (25.5톤 화물차는 풀카고 기준) |
|
||
| 전 주 | 10m(일반용) | 본 | - | - | 12 | 23 | |
|
||
| 〃 | 체신주 8m | 〃 | - | 17 | 23 | 43 | |
|
||
"""
|
||
text = text[:m127.start()] + restored_127 + text[m127.end():]
|
||
print("Successfully restored 1-2-7 in merged file!")
|
||
else:
|
||
print("Could not match 1-2-7 in merged file.")
|
||
|
||
# 4. Restore 1-3-1 사석 in merged file
|
||
pattern_131 = re.compile(r'\|\s*기\s*초\s*사\s*석.*?\|\n', re.DOTALL)
|
||
m131 = pattern_131.search(text)
|
||
if m131:
|
||
print(f"Matched 1-3-1 in merged, len={len(m131.group(0))}")
|
||
restored_131 = """| 기 초 사 석 | 25% | 20% | 30% | 25% | 50% | 40% |
|
||
| 피 복 석 ( 被 覆 石 ) | 15% | 15% | 15% | 15% | 20% | 20% |
|
||
| 뒤 채 움 사 석 | 20% | 20% | 20% | 20% | 25% | 25% |
|
||
"""
|
||
text = text[:m131.start()] + restored_131 + text[m131.end():]
|
||
print("Successfully restored 1-3-1 in merged file!")
|
||
else:
|
||
print("Could not match 1-3-1 in merged file.")
|
||
|
||
with open(merged_file, 'w', encoding='utf-8') as f:
|
||
f.write(text)
|
||
|
||
print("Merged file sync write completed!")
|