Firstly, make sure that you run your script as Administrator as Diskpart requires administrative privileges.
The following should return Driveletter R -
try:
result = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
raise Exception(f"Failed to get drive letter: {e.output.decode('utf-8')}")
result = result.decode('utf-8')
for line in result.split('\n'):
if volume_name in line:
return line.split()[1]
raise Exception(f"Failed to get drive letter: Volume '{volume_name}' not found")
try:
drive_letter = get_drive_letter('MyDisk')
print(f"Drive letter: {drive_letter}")
except Exception as e:
print(f"Error: {e}")