Posts: 7
Threads: 1
Joined: Feb 2025
Hello,
Based on this great piece of code: Python Folder Splitter
I would like to work on files and not on folders.
The code is so short:
#gadgetmiser's idempotent splitter
import os
from shutil import move
wd = os.getcwd()
dirs = os.listdir(wd)
lastitemindex = len(dirs) - 1
drive = wd.split(':')[0]
results = ':\\c64Romset_output\\'
filesperfolder = 255
letterstodisplay = 15
firstfn_2l = dirs[0][:letterstodisplay].split("(")[0].strip().upper()[:4]
lastfn_2l = dirs[:filesperfolder - 1][-1][:letterstodisplay].split("(")[0].strip().upper()[:4]
firsttarget = (firstfn_2l + " to " + lastfn_2l).strip()
os.mkdir(drive + results)
os.mkdir(drive + results + firsttarget)
log_output = open(drive + results + "log_output.txt","w+")
tally = 0
counter = 0
target = firsttarget
for folder in dirs:
tally += 1
if counter == filesperfolder:
p1 = folder[:letterstodisplay].split("(")[0].upper().strip()[:4]
folderpos = dirs.index(folder)
try:
p2 = dirs[folderpos + filesperfolder - 1][:letterstodisplay].split("(")[0].upper().strip()[:4]
except IndexError:
p2 = dirs[lastitemindex][:letterstodisplay].split("(")[0].upper().strip()[:4]
newdir = (p1 + " to " + p2).strip()
print(str(tally) + " files processed ... making new dir called: " + newdir)
target = newdir
counter = 0
newfname = folder.split("(")[0].strip()
move(folder, drive + results + target + "\\" + newfname)
print("Moved " + folder + " to " + drive + results + target + " as " + newfname)
log_output.write("\n" + "Moved " + folder + " to: ** " + target + " **" + " as " + newfname)
counter += 1
print(str(tally) + ' files processed ... ALL DONE')
log_output.write("\n" + str(tally) + " files processed.")
log_output.close() And this work when we want to move a lot of folders into folders (max 255 folders per folder) However I need to work on Files directly, as per example to have 10.000 files and to split into folders with max 255 files each, like the code do for the folders.
At the moment the script work like this, example of 1.000 folders: that folders are automatically splitted in 4 folders (255, 255, 255, 235)
I would like to have the same per files, in example if we have 1.000 files, I would like to split to 4 folders (255, 255, 255, 235 files per each one principal folder)
While I'm totally newbie to Python, I hope someone should let me know what to change in code. Many thanks.
I just tried to modify any 'folder' entry in code with 'files' no errors here but no folders were created.
Posts: 7,320
Threads: 123
Joined: Sep 2016
Can try this i have modify code to use pathlib and fstring for a more modern Python approach.
I have tested with 5 files spilt and that work,also it make new folders with 5 files in each,you set 255.
from pathlib import Path
from shutil import move
# Get the current working directory as a Path object
wd = Path.cwd()
files = [f for f in wd.iterdir() if f.is_file()]
lastitemindex = len(files) - 1
# Setup output directory and parameters
results = Path(wd.drive) / "c64Romset_output"
filesperfolder = 5 # My test set 255
letterstodisplay = 15
# Get the first and last file names for the initial folder name
firstfn_2l = files[0].name[:letterstodisplay].split("(")[0].strip().upper()[:4]
lastfn_2l = files[:filesperfolder - 1][-1].name[:letterstodisplay].split("(")[0].strip().upper()[:4]
# Create the initial target folder
firsttarget = f"{firstfn_2l} to {lastfn_2l}".strip()
(results / firsttarget).mkdir(parents=True, exist_ok=True)
log_output = (results / "log_output.txt").open("w+")
tally = 0
counter = 0
target = firsttarget
for file in files:
tally += 1
# Create a new folder (reached filesperfolder limit)
if counter == filesperfolder:
p1 = file.name[:letterstodisplay].split("(")[0].upper().strip()[:4]
filepos = files.index(file)
try:
p2 = files[filepos + filesperfolder - 1].name[:letterstodisplay].split("(")[0].upper().strip()[:4]
except IndexError:
p2 = files[lastitemindex].name[:letterstodisplay].split("(")[0].upper().strip()[:4]
newdir = f"{p1} to {p2}".strip()
print(f"{tally} files processed ... making new dir called: {newdir}")
(results / newdir).mkdir(exist_ok=True)
target = newdir
counter = 0
# Move the file to the target folder
newfname = file.name.split("(")[0].strip()
move(file, results / target / newfname)
print(f"Moved {file.name} to {results / target} as {newfname}")
log_output.write(f"\nMoved {file.name} to: ** {target} ** as {newfname}")
counter += 1
if __name__ == '__main__':
print(f"{tally} files processed ... ALL DONE")
log_output.write(f"\n{tally} files processed.")
log_output.close()
Posts: 4,798
Threads: 77
Joined: Jan 2018
Mar-01-2025, 09:26 AM
(This post was last modified: Mar-01-2025, 09:26 AM by Gribouillis.)
This code is terrible. Here is my improved version, starting from @ snippsat 's version (UNTESTED)
from pathlib import Path
from shutil import move
# Get the current working directory as a Path object
wd = Path.cwd()
# Setup output directory and parameters
results = Path(wd.drive) / "c64Romset_output"
filesperfolder = 5 # My test set 255
letterstodisplay = 15
# split list of files into chunks
files = [f for f in wd.iterdir() if f.is_file()]
chunks = [files[i : i + filesperfolder] for i in range(0, len(files), filesperfolder)]
# function to shorten names
def short(name):
return name[:letterstodisplay].split("(")[0].strip().upper()[:4]
log_output = (results / "log_output.txt").open("w+")
tally = 0
for files in chunks:
target = f"{short(files[0].name)} to {short(files[-1].name)}".strip()
print(f"{tally} files processed ... making new dir called: {target}")
(results / target).mkdir(parents=True, exist_ok=True)
for file in files:
# Move the file to the target folder
newfname = file.name.split("(")[0].strip()
move(file, results / target / newfname)
print(f"Moved {file.name} to {results / target} as {newfname}")
log_output.write(f"\nMoved {file.name} to: ** {target} ** as {newfname}")
tally += len(files)
if __name__ == "__main__":
print(f"{tally} files processed ... ALL DONE")
log_output.write(f"\n{tally} files processed.")
log_output.close()
« We can solve any problem by introducing an extra level of indirection »
Posts: 7
Threads: 1
Joined: Feb 2025
(Mar-01-2025, 09:26 AM)Gribouillis Wrote: This code is terrible. Here is my improved version, starting from @snippsat 's version (UNTESTED)
from pathlib import Path
from shutil import move
# Get the current working directory as a Path object
wd = Path.cwd()
# Setup output directory and parameters
results = Path(wd.drive) / "c64Romset_output"
filesperfolder = 5 # My test set 255
letterstodisplay = 15
# split list of files into chunks
files = [f for f in wd.iterdir() if f.is_file()]
chunks = [files[i : i + filesperfolder] for i in range(0, len(files), filesperfolder)]
# function to shorten names
def short(name):
return name[:letterstodisplay].split("(")[0].strip().upper()[:4]
log_output = (results / "log_output.txt").open("w+")
tally = 0
for files in chunks:
target = f"{short(files[0].name)} to {short(files[-1].name)}".strip()
print(f"{tally} files processed ... making new dir called: {target}")
(results / target).mkdir(parents=True, exist_ok=True)
for file in files:
# Move the file to the target folder
newfname = file.name.split("(")[0].strip()
move(file, results / target / newfname)
print(f"Moved {file.name} to {results / target} as {newfname}")
log_output.write(f"\nMoved {file.name} to: ** {target} ** as {newfname}")
tally += len(files)
if __name__ == "__main__":
print(f"{tally} files processed ... ALL DONE")
log_output.write(f"\n{tally} files processed.")
log_output.close()
Many thanks for the help (@ snippsat too)
I created the py file, placed inside a folder (in this example c:/FileSplitter) which contains many files.
Launched the script (by cmd with admin rights) and I received this error:
Error: C:\FileSplitter>filesplitter3.py
Traceback (most recent call last):
File "C:\FileSplitter\fileSplitter3.py", line 20, in <module>
log_output = (results / "log_output.txt").open("w+")
File "C:\Users\stefa\AppData\Local\Programs\Python\Python313\Lib\pathlib\_local.py", line 537, in open
return io.open(self, mode, buffering, encoding, errors, newline)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'C:c64Romset_output\\log_output.txt'
Posts: 7
Threads: 1
Joined: Feb 2025
Mar-01-2025, 11:08 AM
(This post was last modified: Mar-01-2025, 11:08 AM by Guybrush16bit.)
(Mar-01-2025, 08:15 AM)snippsat Wrote: Can try this i have modify code to use pathlib and fstring for a more modern Python approach.
I have tested with 5 files spilt and that work,also it make new folders with 5 files in each,you set 255.
from pathlib import Path
from shutil import move
# Get the current working directory as a Path object
wd = Path.cwd()
files = [f for f in wd.iterdir() if f.is_file()]
lastitemindex = len(files) - 1
# Setup output directory and parameters
results = Path(wd.drive) / "c64Romset_output"
filesperfolder = 5 # My test set 255
letterstodisplay = 15
# Get the first and last file names for the initial folder name
firstfn_2l = files[0].name[:letterstodisplay].split("(")[0].strip().upper()[:4]
lastfn_2l = files[:filesperfolder - 1][-1].name[:letterstodisplay].split("(")[0].strip().upper()[:4]
# Create the initial target folder
firsttarget = f"{firstfn_2l} to {lastfn_2l}".strip()
(results / firsttarget).mkdir(parents=True, exist_ok=True)
log_output = (results / "log_output.txt").open("w+")
tally = 0
counter = 0
target = firsttarget
for file in files:
tally += 1
# Create a new folder (reached filesperfolder limit)
if counter == filesperfolder:
p1 = file.name[:letterstodisplay].split("(")[0].upper().strip()[:4]
filepos = files.index(file)
try:
p2 = files[filepos + filesperfolder - 1].name[:letterstodisplay].split("(")[0].upper().strip()[:4]
except IndexError:
p2 = files[lastitemindex].name[:letterstodisplay].split("(")[0].upper().strip()[:4]
newdir = f"{p1} to {p2}".strip()
print(f"{tally} files processed ... making new dir called: {newdir}")
(results / newdir).mkdir(exist_ok=True)
target = newdir
counter = 0
# Move the file to the target folder
newfname = file.name.split("(")[0].strip()
move(file, results / target / newfname)
print(f"Moved {file.name} to {results / target} as {newfname}")
log_output.write(f"\nMoved {file.name} to: ** {target} ** as {newfname}")
counter += 1
if __name__ == '__main__':
print(f"{tally} files processed ... ALL DONE")
log_output.write(f"\n{tally} files processed.")
log_output.close()
Hi Snipspsat, many thanks for the help.
Your code does not give any error, and apparently works.
However some output folders contains 3/4/5/6 files, some others 1 file, and others many many files (over 100)...
I just tested a folder with over 550 files and created folders are 14 only.
Here the output:
Output: Moved fileSplitter3.py to: ** FILE to PYRO ** as fileSplitter3.py
Moved Postman Pat 1, 2, 3 (19xx)(Alternative)[h SG-Team '10].scl to: ** FILE to PYRO ** as Postman Pat 1, 2, 3
Moved Predator 1, 2 (19xx)(-)[h Slider '13].scl to: ** FILE to PYRO ** as Predator 1, 2
Moved Pyromania 1, 2 (19xx)(Amore, Gabriele)[h Tiboh '15].scl to: ** FILE to PYRO ** as Pyromania 1, 2
Moved Quazatron + Magnetron (19xx)(Graftgold)[h SB Soft, Thunder, Dagma '97].scl to: ** FILE to PYRO ** as Quazatron + Magnetron
Moved Rambo 2 + Rambo 3 (19xx)(Ocean)[h SG '10].scl to: ** RAMB to REBE ** as Rambo 2 + Rambo 3
Moved Ramire the Vampire 1, 2, 3 (19xx)(Mojon Twins)[h Slider '13].scl to: ** RAMB to REBE ** as Ramire the Vampire 1, 2, 3
Moved Rebel Star 1, 2 (19xx)(Firebird)(RU)[h Agaev E.][tr ru].scl to: ** RAMB to REBE ** as Rebel Star 1, 2
Moved Rebel Star 1, 2 (19xx)(Firebird)(RU)[h Maslo V.][tr ru].scl to: ** RAMB to REBE ** as Rebel Star 1, 2
Moved Rebel Star 1, 2 (19xx)(Firebird)(RU)[h Merlin '98].scl to: ** RAMB to REBE ** as Rebel Star 1, 2
Moved Rebel Star 1, 2 (19xx)(Firebird)(RU)[h Power of Sound '95, Stars of Keladan '96].scl to: ** REBE to REPT ** as Rebel Star 1, 2
Moved Rebel Star 1, 2 (19xx)(Firebird)(RU)[h Power of Sound '95].scl to: ** REBE to REPT ** as Rebel Star 1, 2
Moved Renegade 1, 2, 3 (19xx)(Imagine)[h Stream Hackers '97].scl to: ** REBE to REPT ** as Renegade 1, 2, 3
Moved Repton 1, 2 (19xx)(Superior)[h BrokImSoft].scl to: ** REBE to REPT ** as Repton 1, 2
Moved Repton Mania (1989)(Superior)[h SG '11].scl to: ** REBE to REPT ** as Repton Mania
Moved Rick Dangerous 1, 2 (19xx)(Micro Style)[h Alex Art '99].scl to: ** RICK to ROBO ** as Rick Dangerous 1, 2
Moved Rick Dangerous 1, 2 (19xx)(Micro Style)[h SG-Team '16].scl to: ** RICK to ROBO ** as Rick Dangerous 1, 2
Moved Rick Dangerous 1, 2 (19xx)(Micro Style)[h Slider '06].scl to: ** RICK to ROBO ** as Rick Dangerous 1, 2
Moved RoboCop 1, 2, 3 (19xx)(Ocean)[h Slider '15].scl to: ** RICK to ROBO ** as RoboCop 1, 2, 3
Moved Robot 1 - The Ship of Doom + The Planet of Death (2017)(Mat Recardo)[h Tiboh '17][t].scl to: ** RICK to ROBO ** as Robot 1 - The Ship of Doom + The Planet of Death
Moved Saboteur 1, 2 (19xx)(Durell)(RU)[h Baxter][tr ru].scl to: ** SABO to SABO ** as Saboteur 1, 2
Moved Saboteur 1, 2 (19xx)(Durell)(RU)[h Brainwave].scl to: ** SABO to SABO ** as Saboteur 1, 2
Moved Saboteur 1, 2 (19xx)(Durell)(RU)[h Merlin '97].scl to: ** SABO to SABO ** as Saboteur 1, 2
Moved Saboteur 1, 2 (19xx)(Durell)(RU)[h Mortal Kombat Hackers Group '95].scl to: ** SABO to SABO ** as Saboteur 1, 2
Moved Saboteur 1, 2 (19xx)(Durell)(RU)[h SG '11].scl to: ** SABO to SABO ** as Saboteur 1, 2
Moved Scooby Doo Collection (1991)(-)[h Fist].scl to: ** SCOO to SEYM ** as Scooby Doo Collection
Moved Scooby Doo Collection (1991)(-)[h SG '10].scl to: ** SCOO to SEYM ** as Scooby Doo Collection
Moved Seto Taisho Special Edition (2017)(Monument Microgames).scl to: ** SCOO to SEYM ** as Seto Taisho Special Edition
Moved Seymour - Arcade Games (19xx)(Code Masters)[h SG '10][t].scl to: ** SCOO to SEYM ** as Seymour - Arcade Games
Moved Seymour's Quest Collection (19xx)(Code Masters)[h SG-Team '15].scl to: ** SCOO to SEYM ** as Seymour's Quest Collection
Moved Sid Spanners 1, 2, 3, 4 (2011)(Digital Prawn)[h Tiboh '11].scl to: ** SID to SORC ** as Sid Spanners 1, 2, 3, 4
Moved Silicon Dreams - Trilogiya (1998)(Energy Minds).scl to: ** SID to SORC ** as Silicon Dreams - Trilogiya
Moved Sir Ababol 1, 2 (19xx)(The Mojon Twins)[h Slider '15].scl to: ** SID to SORC ** as Sir Ababol 1, 2
Moved Smiler 1, 2, 3, 4, 5, 6 (2010)(Digital Prawn)[h Tiboh '11].scl to: ** SID to SORC ** as Smiler 1, 2, 3, 4, 5, 6
Moved Sorcery + Sorcery+ (19xx)(Virgin Games)[h Tiboh '16][t +2].scl to: ** SID to SORC ** as Sorcery + Sorcery+
Moved Speccies 1, 2 (2013)(Tardis Remakes)[h Slider '13].scl to: ** SPEC to STAR ** as Speccies 1, 2
Moved Speccy Jam 2014 (2014)(Tiboh).scl to: ** SPEC to STAR ** as Speccy Jam 2014
Moved Specimen 1,2 (1991)(Andrew J.Remic)[h BrokImSoft].scl to: ** SPEC to STAR ** as Specimen 1,2
Moved Spy vs Spy 1-3 (19xx)(Beyond)[h Tiboh '13].scl to: ** SPEC to STAR ** as Spy vs Spy 1-3
Moved Star Wars. Original Trilogy (2014)(Slider)(RU)(en)[t].scl to: ** SPEC to STAR ** as Star Wars. Original Trilogy
Moved Starstrike 1, 2 (19xx)(Realtime Games)[h Tiboh '15].scl to: ** STAR to TEEN ** as Starstrike 1, 2
Moved Strider 1, 2 (19xx)(US Gold)[h Power Hackers Group '00].scl to: ** STAR to TEEN ** as Strider 1, 2
Moved Strider 1, 2 (19xx)(US Gold)[h SG-Team '16].scl to: ** STAR to TEEN ** as Strider 1, 2
Moved Syktyvkar - Kazan' Games 86 (2017)(eddison)(RU).scl to: ** STAR to TEEN ** as Syktyvkar - Kazan' Games 86
Moved Teenage Mutant Hero Turtles 1, 2 (19xx)(Image Works)[h SG '10].scl to: ** STAR to TEEN ** as Teenage Mutant Hero Turtles 1, 2
Moved Teenage Mutant Hero Turtles 1, 2 (19xx)(Image Works)[h Slavjack].scl to: ** TEEN to TRAP ** as Teenage Mutant Hero Turtles 1, 2
Moved Total Eclipse 1, 2 (19xx)(Incentive)[h Golden Max].scl to: ** TEEN to TRAP ** as Total Eclipse 1, 2
Moved Total Eclipse 1, 2 (19xx)(Incentive)[h KSA '94].scl to: ** TEEN to TRAP ** as Total Eclipse 1, 2
Moved Total Eclipse 1, 2 (19xx)(Incentive)[h Tankard].scl to: ** TEEN to TRAP ** as Total Eclipse 1, 2
Moved Trap Door + Through the Trap Door (1990)(Alternative)[h AMD][t][aka Trap Door Collection].scl to: ** TEEN to TRAP ** as Trap Door + Through the Trap Door
Moved Trapdoor, The + Through the Trapdoor (19xx)(Piranha)[h Amiga Must Die, TomCaT '09].scl to: ** TRAP to TURR ** as Trapdoor, The + Through the Trapdoor
Moved Trapdoor, The + Through the Trapdoor (19xx)(Piranha)[h SAW '95].scl to: ** TRAP to TURR ** as Trapdoor, The + Through the Trapdoor
Moved Trapdoor, The + Through the Trapdoor (19xx)(Piranha)[h Slider '13].scl to: ** TRAP to TURR ** as Trapdoor, The + Through the Trapdoor
Moved Turrican 1, 2 (19xx)(Rainbow Arts)[h Maslo V.].scl to: ** TRAP to TURR ** as Turrican 1, 2
Moved Turrican 1, 2 (19xx)(Rainbow Arts)[h Slider '09].scl to: ** TRAP to TURR ** as Turrican 1, 2
Moved Video Classics (1989)(Silverbird)[h BrokImSoft][aka Blip!].scl to: ** VIDE to WIWO ** as Video Classics
Moved Vortex-1 (19xx)(Megafire).scl to: ** VIDE to WIWO ** as Vortex-1
Moved Vortex-2 (19xx)(Megafire).scl to: ** VIDE to WIWO ** as Vortex-2
Moved Willy The Wasp 1, 2 (2014)(Davey Sludge)[h Debris '15].scl to: ** VIDE to WIWO ** as Willy The Wasp 1, 2
Moved Wiwo Dido 1, 2, 3 (2011)(YRS)[h Tiboh '13].scl to: ** VIDE to WIWO ** as Wiwo Dido 1, 2, 3
Moved Wolf 2&3 (1999)(Z-Zero Systems)(RU).scl to: ** WOLF to ZBLA ** as Wolf 2&3
Moved X-Files 1, 2 (1999)(Upsoft)(RU).scl to: ** WOLF to ZBLA ** as X-Files 1, 2
Moved Yankee (1987)(CCS)[h Flash].scl to: ** WOLF to ZBLA ** as Yankee
Moved Yie Ar Kung-Fu 1, 2 (19xx)(Imagine)[h Slider '17].scl to: ** WOLF to ZBLA ** as Yie Ar Kung-Fu 1, 2
Moved Zblast SD+ (2003)(Marks, Russell)(128K)[h Triumph][t].scl to: ** WOLF to ZBLA ** as Zblast SD+
Moved ZX Chip Vologodonsk 001 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 001
Moved ZX Chip Vologodonsk 002 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 002
Moved ZX Chip Vologodonsk 003 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 003
Moved ZX Chip Vologodonsk 004 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 004
Moved ZX Chip Vologodonsk 005 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 005
Moved ZX Chip Vologodonsk 006 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 006
Moved ZX Chip Vologodonsk 007 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 007
Moved ZX Chip Vologodonsk 008 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 008
Moved ZX Chip Vologodonsk 009 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 009
Moved ZX Chip Vologodonsk 010 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 010
Moved ZX Chip Vologodonsk 011 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 011
Moved ZX Chip Vologodonsk 012 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 012
Moved ZX Chip Vologodonsk 013 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 013
Moved ZX Chip Vologodonsk 014 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 014
Moved ZX Chip Vologodonsk 015 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 015
Moved ZX Chip Vologodonsk 016 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 016
Moved ZX Chip Vologodonsk 017 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 017
Moved ZX Chip Vologodonsk 018 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 018
Moved ZX Chip Vologodonsk 019 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 019
Moved ZX Chip Vologodonsk 020 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 020
Moved ZX Chip Vologodonsk 021 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 021
Moved ZX Chip Vologodonsk 022 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 022
Moved ZX Chip Vologodonsk 023 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 023
Moved ZX Chip Vologodonsk 024 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 024
Moved ZX Chip Vologodonsk 025 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 025
Moved ZX Chip Vologodonsk 026 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 026
Moved ZX Chip Vologodonsk 027 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 027
Moved ZX Chip Vologodonsk 028 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 028
Moved ZX Chip Vologodonsk 029 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 029
Moved ZX Chip Vologodonsk 030 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 030
Moved ZX Chip Vologodonsk 031 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 031
Moved ZX Chip Vologodonsk 032 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 032
Moved ZX Chip Vologodonsk 033 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 033
Moved ZX Chip Vologodonsk 034 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 034
Moved ZX Chip Vologodonsk 035 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 035
Moved ZX Chip Vologodonsk 036 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 036
Moved ZX Chip Vologodonsk 037 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 037
Moved ZX Chip Vologodonsk 038 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 038
Moved ZX Chip Vologodonsk 039 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 039
Moved ZX Chip Vologodonsk 040 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 040
Moved ZX Chip Vologodonsk 041 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 041
Moved ZX Chip Vologodonsk 042 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 042
Moved ZX Chip Vologodonsk 043 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 043
Moved ZX Chip Vologodonsk 044 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 044
Moved ZX Chip Vologodonsk 045 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 045
Moved ZX Chip Vologodonsk 046 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 046
Moved ZX Chip Vologodonsk 047 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 047
Moved ZX Chip Vologodonsk 048 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 048
Moved ZX Chip Vologodonsk 049 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 049
Moved ZX Chip Vologodonsk 050 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 050
Moved ZX Chip Vologodonsk 051 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 051
Moved ZX Chip Vologodonsk 052 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 052
Moved ZX Chip Vologodonsk 053 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 053
Moved ZX Chip Vologodonsk 054 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 054
Moved ZX Chip Vologodonsk 055 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 055
Moved ZX Chip Vologodonsk 056 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 056
Moved ZX Chip Vologodonsk 057 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 057
Moved ZX Chip Vologodonsk 058 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 058
Moved ZX Chip Vologodonsk 059 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 059
Moved ZX Chip Vologodonsk 060 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 060
Moved ZX Chip Vologodonsk 061 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 061
Moved ZX Chip Vologodonsk 062 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 062
Moved ZX Chip Vologodonsk 063 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 063
Moved ZX Chip Vologodonsk 064 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 064
Moved ZX Chip Vologodonsk 065 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 065
Moved ZX Chip Vologodonsk 066 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 066
Moved ZX Chip Vologodonsk 067 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 067
Moved ZX Chip Vologodonsk 068 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 068
Moved ZX Chip Vologodonsk 069 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 069
Moved ZX Chip Vologodonsk 070 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 070
Moved ZX Chip Vologodonsk 071 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 071
Moved ZX Chip Vologodonsk 072 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 072
Moved ZX Chip Vologodonsk 073 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 073
Moved ZX Chip Vologodonsk 074 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 074
Moved ZX Chip Vologodonsk 075 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 075
Moved ZX Chip Vologodonsk 076 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 076
Moved ZX Chip Vologodonsk 077 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 077
Moved ZX Chip Vologodonsk 078 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 078
Moved ZX Chip Vologodonsk 079 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 079
Moved ZX Chip Vologodonsk 080 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 080
Moved ZX Chip Vologodonsk 081 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 081
Moved ZX Chip Vologodonsk 082 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 082
Moved ZX Chip Vologodonsk 083 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 083
Moved ZX Chip Vologodonsk 084 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 084
Moved ZX Chip Vologodonsk 085 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 085
Moved ZX Chip Vologodonsk 086 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 086
Moved ZX Chip Vologodonsk 087 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 087
Moved ZX Chip Vologodonsk 088 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 088
Moved ZX Chip Vologodonsk 089 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 089
Moved ZX Chip Vologodonsk 090 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 090
Moved ZX Chip Vologodonsk 091 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 091
Moved ZX Chip Vologodonsk 092 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 092
Moved ZX Chip Vologodonsk 093 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 093
Moved ZX Chip Vologodonsk 094 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 094
Moved ZX Chip Vologodonsk 095 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 095
Moved ZX Chip Vologodonsk 096 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 096
Moved ZX Chip Vologodonsk 097 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 097
Moved ZX Chip Vologodonsk 098 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 098
Moved ZX Chip Vologodonsk 099 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 099
Moved ZX Chip Vologodonsk 100 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 100
Moved ZX Chip Vologodonsk 101 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 101
Moved ZX Chip Vologodonsk 102 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 102
Moved ZX Chip Vologodonsk 103 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 103
Moved ZX Chip Vologodonsk 104 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 104
Moved ZX Chip Vologodonsk 105 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 105
Moved ZX Chip Vologodonsk 106 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 106
Moved ZX Chip Vologodonsk 107 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 107
Moved ZX Chip Vologodonsk 108 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 108
Moved ZX Chip Vologodonsk 109 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 109
Moved ZX Chip Vologodonsk 110 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 110
Moved ZX Chip Vologodonsk 111 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 111
Moved ZX Chip Vologodonsk 112 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 112
Moved ZX Chip Vologodonsk 113 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 113
Moved ZX Chip Vologodonsk 114 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 114
Moved ZX Chip Vologodonsk 115 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 115
Moved ZX Chip Vologodonsk 116 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 116
Moved ZX Chip Vologodonsk 117 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 117
Moved ZX Chip Vologodonsk 118 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 118
Moved ZX Chip Vologodonsk 119 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 119
Moved ZX Chip Vologodonsk 120 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 120
Moved ZX Chip Vologodonsk 121 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 121
Moved ZX Chip Vologodonsk 122 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 122
Moved ZX Chip Vologodonsk 123 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 123
Moved ZX Chip Vologodonsk 124 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 124
Moved ZX Chip Vologodonsk 125 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 125
Moved ZX Chip Vologodonsk 126 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 126
Moved ZX Chip Vologodonsk 127 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 127
Moved ZX Chip Vologodonsk 128 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 128
Moved ZX Chip Vologodonsk 129 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 129
Moved ZX Chip Vologodonsk 130 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 130
Moved ZX Chip Vologodonsk 131 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 131
Moved ZX Chip Vologodonsk 132 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 132
Moved ZX Chip Vologodonsk 133 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 133
Moved ZX Chip Vologodonsk 134 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 134
Moved ZX Chip Vologodonsk 135 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 135
Moved ZX Chip Vologodonsk 136 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 136
Moved ZX Chip Vologodonsk 137 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 137
Moved ZX Chip Vologodonsk 138 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 138
Moved ZX Chip Vologodonsk 139 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 139
Moved ZX Chip Vologodonsk 140 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 140
Moved ZX Chip Vologodonsk 141 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 141
Moved ZX Chip Vologodonsk 142 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 142
Moved ZX Chip Vologodonsk 143 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 143
Moved ZX Chip Vologodonsk 144 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 144
Moved ZX Chip Vologodonsk 145 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 145
Moved ZX Chip Vologodonsk 146 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 146
Moved ZX Chip Vologodonsk 147 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 147
Moved ZX Chip Vologodonsk 148 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 148
Moved ZX Chip Vologodonsk 149 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 149
Moved ZX Chip Vologodonsk 150 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 150
Moved ZX Chip Vologodonsk 151 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 151
Moved ZX Chip Vologodonsk 152 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 152
Moved ZX Chip Vologodonsk 153 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 153
Moved ZX Chip Vologodonsk 154 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 154
Moved ZX Chip Vologodonsk 155 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 155
Moved ZX Chip Vologodonsk 156 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 156
Moved ZX Chip Vologodonsk 157 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 157
Moved ZX Chip Vologodonsk 158 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 158
Moved ZX Chip Vologodonsk 159 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 159
Moved ZX Chip Vologodonsk 160 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 160
Moved ZX Chip Vologodonsk 161 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 161
Moved ZX Chip Vologodonsk 162 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 162
Moved ZX Chip Vologodonsk 163 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 163
Moved ZX Chip Vologodonsk 164 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 164
Moved ZX Chip Vologodonsk 165 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 165
Moved ZX Chip Vologodonsk 166 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 166
Moved ZX Chip Vologodonsk 167 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 167
Moved ZX Chip Vologodonsk 168 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 168
Moved ZX Chip Vologodonsk 169 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 169
Moved ZX Chip Vologodonsk 170 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 170
Moved ZX Chip Vologodonsk 171 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 171
Moved ZX Chip Vologodonsk 172 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 172
Moved ZX Chip Vologodonsk 173 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 173
Moved ZX Chip Vologodonsk 174 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 174
Moved ZX Chip Vologodonsk 175 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 175
Moved ZX Chip Vologodonsk 176 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 176
Moved ZX Chip Vologodonsk 177 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 177
Moved ZX Chip Vologodonsk 178 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 178
Moved ZX Chip Vologodonsk 179 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 179
Moved ZX Chip Vologodonsk 180 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 180
Moved ZX Chip Vologodonsk 181 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 181
Moved ZX Chip Vologodonsk 182 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 182
Moved ZX Chip Vologodonsk 183 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 183
Moved ZX Chip Vologodonsk 184 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 184
Moved ZX Chip Vologodonsk 185 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 185
Moved ZX Chip Vologodonsk 186 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 186
Moved ZX Chip Vologodonsk 187 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 187
Moved ZX Chip Vologodonsk 188 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 188
Moved ZX Chip Vologodonsk 189 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 189
Moved ZX Chip Vologodonsk 190 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 190
Moved ZX Chip Vologodonsk 191 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 191
Moved ZX Chip Vologodonsk 192 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 192
Moved ZX Chip Vologodonsk 193 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 193
Moved ZX Chip Vologodonsk 194 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 194
Moved ZX Chip Vologodonsk 195 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 195
Moved ZX Chip Vologodonsk 196 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 196
Moved ZX Chip Vologodonsk 197 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 197
Moved ZX Chip Vologodonsk 198 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 198
Moved ZX Chip Vologodonsk 199 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 199
Moved ZX Chip Vologodonsk 200 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 200
Moved ZX Chip Vologodonsk 201 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 201
Moved ZX Chip Vologodonsk 202 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 202
Moved ZX Chip Vologodonsk 203 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 203
Moved ZX Chip Vologodonsk 204 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 204
Moved ZX Chip Vologodonsk 205 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 205
Moved ZX Chip Vologodonsk 206 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 206
Moved ZX Chip Vologodonsk 207 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 207
Moved ZX Chip Vologodonsk 208 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 208
Moved ZX Chip Vologodonsk 209 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 209
Moved ZX Chip Vologodonsk 210 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 210
Moved ZX Chip Vologodonsk 211 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 211
Moved ZX Chip Vologodonsk 212 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 212
Moved ZX Chip Vologodonsk 213 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 213
Moved ZX Chip Vologodonsk 214 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 214
Moved ZX Chip Vologodonsk 215 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 215
Moved ZX Chip Vologodonsk 216 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 216
Moved ZX Chip Vologodonsk 217 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 217
Moved ZX Chip Vologodonsk 218 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 218
Moved ZX Chip Vologodonsk 219 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 219
Moved ZX Chip Vologodonsk 220 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 220
Moved ZX Chip Vologodonsk 221 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 221
Moved ZX Chip Vologodonsk 222 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 222
Moved ZX Chip Vologodonsk 223 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 223
Moved ZX Chip Vologodonsk 224 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 224
Moved ZX Chip Vologodonsk 225 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 225
Moved ZX Chip Vologodonsk 226 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 226
Moved ZX Chip Vologodonsk 227 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 227
Moved ZX Chip Vologodonsk 228 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 228
Moved ZX Chip Vologodonsk 229 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 229
Moved ZX Chip Vologodonsk 230 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 230
Moved ZX Chip Vologodonsk 231 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 231
Moved ZX Chip Vologodonsk 232 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 232
Moved ZX Chip Vologodonsk 233 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 233
Moved ZX Chip Vologodonsk 234 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 234
Moved ZX Chip Vologodonsk 235 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 235
Moved ZX Chip Vologodonsk 236 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 236
Moved ZX Chip Vologodonsk 237 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 237
Moved ZX Chip Vologodonsk 238 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 238
Moved ZX Chip Vologodonsk 239 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 239
Moved ZX Chip Vologodonsk 240 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 240
Moved ZX Chip Vologodonsk 241 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 241
Moved ZX Chip Vologodonsk 242 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 242
Moved ZX Chip Vologodonsk 243 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 243
Moved ZX Chip Vologodonsk 244 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 244
Moved ZX Chip Vologodonsk 245 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 245
Moved ZX Chip Vologodonsk 246 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 246
Moved ZX Chip Vologodonsk 247 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 247
Moved ZX Chip Vologodonsk 248 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 248
Moved ZX Chip Vologodonsk 249 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 249
Moved ZX Chip Vologodonsk 250 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 250
Moved ZX Chip Vologodonsk 251 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 251
Moved ZX Chip Vologodonsk 252 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 252
Moved ZX Chip Vologodonsk 253 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 253
Moved ZX Chip Vologodonsk 254 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 254
Moved ZX Chip Vologodonsk 255 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 255
Moved ZX Chip Vologodonsk 256 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 256
Moved ZX Chip Vologodonsk 257 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 257
Moved ZX Chip Vologodonsk 258 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 258
Moved ZX Chip Vologodonsk 259 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 259
Moved ZX Chip Vologodonsk 260 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 260
Moved ZX Chip Vologodonsk 261 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 261
Moved ZX Chip Vologodonsk 262 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 262
Moved ZX Chip Vologodonsk 263 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 263
Moved ZX Chip Vologodonsk 264 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 264
Moved ZX Chip Vologodonsk 265 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 265
Moved ZX Chip Vologodonsk 266 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 266
Moved ZX Chip Vologodonsk 267 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 267
Moved ZX Chip Vologodonsk 268 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 268
Moved ZX Chip Vologodonsk 269 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 269
Moved ZX Chip Vologodonsk 270 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 270
Moved ZX Chip Vologodonsk 271 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 271
Moved ZX Chip Vologodonsk 272 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 272
Moved ZX Chip Vologodonsk 273 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 273
Moved ZX Chip Vologodonsk 274 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 274
Moved ZX Chip Vologodonsk 275 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 275
Moved ZX Chip Vologodonsk 276 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 276
Moved ZX Chip Vologodonsk 277 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 277
Moved ZX Chip Vologodonsk 278 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 278
Moved ZX Chip Vologodonsk 279 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 279
Moved ZX Chip Vologodonsk 281 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 281
Moved ZX Chip Vologodonsk 282 (19xx)(-)(RU)(en).scl to: ** ZX C to ZX C ** as ZX Chip Vologodonsk 282
Posts: 4,798
Threads: 77
Joined: Jan 2018
Mar-01-2025, 12:11 PM
(This post was last modified: Mar-01-2025, 12:12 PM by Gribouillis.)
(Mar-01-2025, 10:58 AM)Guybrush16bit Wrote: Launched the script (by cmd with admin rights) and I received this error: This is very strange. Did you modify the line
results = Path(wd.drive) / "c64Romset_output" ?
or any other line?
« We can solve any problem by introducing an extra level of indirection »
Posts: 7
Threads: 1
Joined: Feb 2025
(Mar-01-2025, 12:11 PM)Gribouillis Wrote: (Mar-01-2025, 10:58 AM)Guybrush16bit Wrote: Launched the script (by cmd with admin rights) and I received this error: This is very strange. Did you modify the line
results = Path(wd.drive) / "c64Romset_output" ?
or any other line?
Nope :-(
Posts: 4,798
Threads: 77
Joined: Jan 2018
(Mar-01-2025, 12:46 PM)Guybrush16bit Wrote: Nope :-( Then I don't understand the error, because there are exactly the same lines in snippsat's code and you say that it works in his code.
« We can solve any problem by introducing an extra level of indirection »
Posts: 7
Threads: 1
Joined: Feb 2025
(Mar-01-2025, 12:59 PM)Gribouillis Wrote: (Mar-01-2025, 12:46 PM)Guybrush16bit Wrote: Nope :-( Then I don't understand the error, because there are exactly the same lines in snippsat's code and you say that it works in his code.
lol I really would like to understand the error, however Python is too new for me...I understand about 30% of this code...
Posts: 7,320
Threads: 123
Joined: Sep 2016
Mar-01-2025, 05:37 PM
(This post was last modified: Mar-01-2025, 05:37 PM by snippsat.)
The folder naming seems to work initially but fails to update correctly after a certain poin,especially with the ZX Chip Vologodonsk files.
The counter variable might not be resetting properly after each folder is created.
Fix counter so it reset to 0 after every filesperfolder files, ensuring a new folder is created consistently.
from pathlib import Path
from shutil import move
# Get the current working directory as a Path object
wd = Path.cwd()
files = [f for f in wd.iterdir() if f.is_file()]
lastitemindex = len(files) - 1
results = Path(wd.drive) / "/c64Romset_output"
filesperfolder = 5 # Set to 5 for testing; adjust as needed
letterstodisplay = 15
results.mkdir(parents=True, exist_ok=True)
# Open log file
log_output = (results / "log_output.txt").open("w+")
tally = 0
counter = 0
folder_index = 0
for i, file in enumerate(files):
tally += 1
# Create a new folder (reached filesperfolder limit)
if counter == 0:
start_idx = i
end_idx = min(i + filesperfolder - 1, lastitemindex)
firstfn_2l = files[start_idx].name[:letterstodisplay].split("(")[0].strip().upper()[:4]
lastfn_2l = files[end_idx].name[:letterstodisplay].split("(")[0].strip().upper()[:4]
target = f"{firstfn_2l} to {lastfn_2l}".strip()
(results / target).mkdir(exist_ok=True)
print(f"Created new directory: {target}")
# Move the file to the target folder
newfname = file.name.split("(")[0].strip()
move(file, results / target / newfname)
print(f"Moved {file.name} to {results / target} as {newfname}")
log_output.write(f"\nMoved {file.name} to: ** {target} ** as {newfname}")
counter += 1
# Reset counter and prepare for the next folder
if counter == filesperfolder:
counter = 0
folder_index += 1
if __name__ == "__main__":
print(f"{tally} files processed ... ALL DONE")
log_output.write(f"\ Gribouillis code is better and work for me if i do one change.
from pathlib import Path
from shutil import move
# Get the current working directory as a Path object
wd = Path.cwd()
# Setup output directory and parameters
# add one /
results = Path(wd.drive) / "/c64Romset_output"
filesperfolder = 5 # My test set 255
letterstodisplay = 15
# split list of files into chunks
files = [f for f in wd.iterdir() if f.is_file()]
chunks = [files[i : i + filesperfolder] for i in range(0, len(files), filesperfolder)]
# function to shorten names
def short(name):
return name[:letterstodisplay].split("(")[0].strip().upper()[:4]
log_output = (results / "log_output.txt").open("w+")
tally = 0
for files in chunks:
target = f"{short(files[0].name)} to {short(files[-1].name)}".strip()
print(f"{tally} files processed ... making new dir called: {target}")
(results / target).mkdir(parents=True, exist_ok=True)
for file in files:
# Move the file to the target folder
newfname = file.name.split("(")[0].strip()
move(file, results / target / newfname)
print(f"Moved {file.name} to {results / target} as {newfname}")
log_output.write(f"\nMoved {file.name} to: ** {target} ** as {newfname}")
tally += len(files)
if __name__ == "__main__":
print(f"{tally} files processed ... ALL DONE")
log_output.write(f"\n{tally} files processed.")
log_output.close()
|