import os def collect_files(directory, extensions): collected_files = [] for root, dirs, files in os.walk(directory): for file in files: if any(file.endswith(ext) for ext in extensions): file_path = os.path.join(root, file) collected_files.append((file_path, file)) return collected_files def write_combined_file(text_files, media_files, output_file): with open(output_file, 'w', encoding='utf-8') as aio_file: # Write text file contents if text_files: aio_file.write("# Text Files Contents\n") for file_path, file_name in text_files: aio_file.write(f"# File: {file_path}\n") try: with open(file_path, 'r', encoding='utf-8') as file: aio_file.write(file.read()) except Exception as e: aio_file.write(f"Error reading file {file_path}: {str(e)}\n") aio_file.write("\n" + "="*80 + "\n\n") # Write media file paths with folder structure if media_files: aio_file.write("# Media File Paths\n") current_folder = None for file_path, file_name in sorted(media_files, key=lambda x: x[0]): folder = os.path.dirname(file_path) if folder != current_folder: if current_folder is not None: aio_file.write("\n" + "="*80 + "\n\n") aio_file.write(f"# Folder: {folder}\n") current_folder = folder aio_file.write(f"File: {file_path}\n") if current_folder is not None: aio_file.write("\n" + "="*80 + "\n\n") def main(): directory = os.getcwd() # Current working directory # Define extensions for text files and media files text_extensions = ['.py', '.js', '.html', '.css', '.txt', '.md', '.json'] media_extensions = ['.jpg', '.jpeg', '.png', '.webp', '.avi', '.mp3', '.mp4'] # Collect text files text_files = collect_files(directory, text_extensions) # Collect media files media_files = collect_files(directory, media_extensions) # Combine both text file contents and media file paths into one file output_file = 'combined.txt' write_combined_file(text_files, media_files, output_file) print(f"All text file contents and media file paths have been written to {output_file}") if __name__ == "__main__": main()