diff --git a/.vscode/launch.json b/.vscode/launch.json index 91dbc3b..e6a44c1 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -13,6 +13,7 @@ "${workspaceFolder}/tests/resources", "${workspaceFolder}/output.csv", "-r", + "-n", "-p", "group_num:group(\\d)-\\w-\\d+\\.txt", "group(\\d)-(?P\\w)-(?P\\d+)\\.txt", diff --git a/csvbyname/cli.py b/csvbyname/cli.py index 9d7c9cb..c994731 100644 --- a/csvbyname/cli.py +++ b/csvbyname/cli.py @@ -63,6 +63,7 @@ def main(): "Alternatively, use named REGEX groups.", nargs="+", type=str, + required=True ) argparser.add_argument( "-n", diff --git a/csvbyname/generate.py b/csvbyname/generate.py index 6be5eb9..b830447 100644 --- a/csvbyname/generate.py +++ b/csvbyname/generate.py @@ -72,20 +72,24 @@ def collect_files( def write_collected_to_csv( - output_path: str, collected: dict[str, dict[str, str]], property_keys: Iterable[str] + output_path: str, + collected: dict[str, dict[str, str]], + property_keys: Iterable[str], + output_basename: bool, ): with open(output_path, "w") as output_fd: s_property_keys = sorted(property_keys) - header = ["path", *s_property_keys] + header = ["path"] + if output_basename: + header.append("basename") + header.extend(s_property_keys) writer = csv.writer(output_fd) writer.writerow(header) for full_path, properties in collected.items(): - writer.writerow( - [ - full_path, - *( - properties[k] if k in properties else "N/A" - for k in s_property_keys - ), - ] + row = [full_path] + if output_basename: + row.append(os.path.basename(full_path)) + row.extend( + (properties[k] if k in properties else "N/A" for k in s_property_keys) ) + writer.writerow(row)