Romlister May 2026
def filter_by_name_pattern(self, pattern, case_sensitive=False): """Keep ROMs whose name matches regex pattern.""" flags = 0 if case_sensitive else re.IGNORECASE regex = re.compile(pattern, flags) self.roms = [r for r in self.roms if regex.search(r.name)] return self
def scan(self): """Scan directory and collect ROM files.""" if self.recursive: iterator = self.root_path.rglob("*") else: iterator = self.root_path.glob("*") romlister
class RomLister: def (self, root_path, recursive=True): self.root_path = Path(root_path) self.recursive = recursive self.roms = [] clean_names=False): with open(filepath
def export_csv(self, filepath, clean_names=False): with open(filepath, 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) writer.writerow(['filename' if not clean_names else 'clean_name']) for item in self.get_list(clean_names): writer.writerow([item]) romlister
args = parser.parse_args()
def get_list(self, clean_names=False): """Return list of ROM file paths or cleaned names.""" if clean_names: return [self.clean_name(r.stem) for r in self.roms] return [str(r) for r in self.roms]
