1import sys 2from typing import List 3 4 5def merge_txt_files(file_list: List[str], output_file: str) -> None: 6 if not file_list: 7 print("No input files provided.") 8 return 9 10 metadata: List[str] = [] 11 content: List[str] = [] 12 13 # Read metadata and content from all files 14 for file_path in file_list: 15 try: 16 with open(file_path) as file: 17 lines = file.readlines() 18 if len(lines) < 2: 19 print( 20 f"Error: {file_path} does not have enough lines for metadata." 21 ) 22 return 23 24 file_metadata = lines[:2] 25 file_content = lines[2:] 26 27 if not metadata: 28 metadata = file_metadata 29 elif metadata != file_metadata: 30 print(f"Error: Metadata mismatch in {file_path}") 31 print("Expected metadata:") 32 print("".join(metadata)) 33 print(f"Metadata in {file_path}:") 34 print("".join(file_metadata)) 35 return 36 37 content.extend(file_content) 38 except OSError as e: 39 print(f"Error reading file {file_path}: {e}") 40 return 41 42 # Write merged content to output file 43 try: 44 with open(output_file, "w") as outfile: 45 outfile.writelines(metadata) 46 outfile.writelines(content) 47 print(f"Successfully merged files into {output_file}") 48 except OSError as e: 49 print(f"Error writing to output file {output_file}: {e}") 50 51 52if __name__ == "__main__": 53 if len(sys.argv) < 3: 54 print( 55 "Usage: python script.py output_file.txt input_file1.txt input_file2.txt ..." 56 ) 57 else: 58 output_file = sys.argv[1] 59 input_files = sys.argv[2:] 60 merge_txt_files(input_files, output_file) 61