| --- |
| license: apache-2.0 |
| language: |
| - en |
| pretty_name: "VehicleWorld Database Snippets" |
| tags: |
| - code |
| - simulation |
| - autonomous-driving |
|
|
| |
| dataset_info: |
| features: |
| - name: path |
| dtype: string |
| - name: execute.py |
| dtype: string |
| - name: inits |
| dtype: string |
| - name: modules |
| dtype: string |
| - name: querys |
| dtype: string |
| - name: raw |
| dtype: string |
| - name: worlds.json |
| dtype: string |
| splits: |
| - name: train |
| num_bytes: 155973757 |
| num_examples: 1291 |
| download_size: 155973757 |
| dataset_size: 1291 |
| |
|
|
| --- |
| |
| # VehicleWorld Database |
| Run the following code to convert csv to raw dataset |
|
|
| ```python |
| import os |
| import csv |
| import sys |
| |
| def csv_to_directory(csv_file, target_dir): |
| """ |
| Reads a CSV file and creates a directory structure based on its content. |
| |
| Args: |
| csv_file (str): The path to the input CSV file. |
| target_dir (str): The path to the target directory where the structure will be created. |
| """ |
| if not os.path.isfile(csv_file): |
| # Using sys.stderr for error messages is a good practice. |
| sys.stderr.write(f"Error: CSV file '{csv_file}' not found.\n") |
| return |
| |
| os.makedirs(target_dir, exist_ok=True) |
| |
| # Handle large fields in CSV |
| max_int = sys.maxsize |
| while True: |
| try: |
| csv.field_size_limit(max_int) |
| break |
| except OverflowError: |
| max_int = int(max_int / 10) |
| |
| try: |
| with open(csv_file, 'r', encoding='utf-8') as csvfile: |
| reader = csv.DictReader(csvfile) |
| |
| if not reader.fieldnames: |
| sys.stderr.write("Error: CSV file is empty or has no header row.\n") |
| return |
| |
| filenames = [header for header in reader.fieldnames if header != 'path'] |
| |
| for row in reader: |
| subdir_name = row.get('path') |
| if not subdir_name: |
| # It's better to inform about skipped rows. |
| sys.stderr.write("Warning: Skipping a row because 'path' value is missing.\n") |
| continue |
| |
| full_subdir_path = os.path.join(target_dir, subdir_name) |
| os.makedirs(full_subdir_path, exist_ok=True) |
| |
| for filename in filenames: |
| file_path = os.path.join(full_subdir_path, filename) |
| content = row.get(filename, "") |
| |
| try: |
| with open(file_path, 'w', encoding='utf-8') as f: |
| f.write(content) |
| except IOError as e: |
| sys.stderr.write(f"Error: Could not write to file '{file_path}': {e}\n") |
| |
| except Exception as e: |
| sys.stderr.write(f"An unexpected error occurred while processing the CSV file: {e}\n") |
| |
| if __name__ == "__main__": |
| # It is recommended to use command-line arguments for file paths |
| # for better script reusability. |
| if len(sys.argv) != 3: |
| print("Usage: python your_script_name.py <path_to_csv> <target_directory>") |
| sys.exit(1) |
| |
| csv_input_file = sys.argv[1] |
| output_directory = sys.argv[2] |
| |
| csv_to_directory(csv_input_file, output_directory) |
| ``` |