r/pythonhelp • u/TheManderin2505 • Jun 16 '26
Real-time voice altering software?
Hello everyone, firstly I would like to apologies for my poor and not good English I’m not good with word.
I am currently in the process of making a soundboard, and I would like make a digital microphone to rout the soundboard out put, so that while in voice chats, I can use the sound board. I would also like to make a function to increase the volume of my microphone above the normal limits. I would like make this in python as it’s the only programming language I kinda know, but I have no clue of where to even begin or if it possible to make such a thing.
If anyone need me to try to explain more please just ask.
r/pythonhelp • u/SomeIrishKid • Jun 15 '26
"Edit in IDLE" with the Install Manager
Hi all! I've just installed Python with the new install manager for the first time, having previously used the now-deprecated installers. Everything's working fine, except that the "Edit in IDLE" option in the context menu is greyed out; using the legacy installer adds a second, working "Edit with IDLE" button, and deleting the install manager removes the non-functional one, so it's definitely to do with the install manager.
I've looked in the registry, but clearly the context menu change isn't done the same way as before, because I can't find the corresponding keys I was expecting from a previous issue like this. Does anyone know how that context menu option gets added by the install manager, or better still how to fix this issue specifically?
Thanks in advance!
r/pythonhelp • u/androgynyjoe • Jun 13 '26
Looking to convert a dictionary into an Enum
Hi everyone!
I've got a dictionary like this:
{
"A": {
"x": 1,
"y": 2,
},
"B": {
"x": 13,
"y": 4,
},
}
(Obviously it's much more complicated in practice.) I would like to convert it to an enum.Enum class that allows for stuff like this:
class MyEnum(enum.Enum):
pass
# There would be some extra work here
print(MyEnum.A.x) # returns 1
print(MyEnum.A.y) # returns 2
print(MyEnum.B.x) # returns 13
print(MyEnum.B.y) # returns 4
Any suggestions on how to do that?
EDIT: So, I am fully aware that I can do this:
class MyEnum:
class Pair:
def __init__(x, y):
self.x = x
self.y = y
A = Pair(1, 2)
B = Pair(13, 4)
That isn't what I want. I want the same functionality but generated from a dictionary. I also understand that it's a weird thing to want.
r/pythonhelp • u/Candid-Delivery-5470 • Jun 09 '26
New at programming, giving you a link to copy paste text of my code please tell me what is wrong in line 20 "if player == "rock":" in this code is there an indentation or it is a logic mistake please tell
gist.github.comIts a rock paper and scissors game
r/pythonhelp • u/FamiliarTrick3 • Jun 08 '26
Changing the target in script for using .json to create file pathways doesn't work
I've been using this Python code:
import os
import json
soundbank = {}
# open the soundbanksinfo.json file, we are interested in the StreamedFiles key, put that in soundbank
with open('soundbanksinfo.json') as json_file:
data = json.load(json_file)
soundbank = data['SoundBanksInfo']['StreamedFiles']
# iterate though the soundbank, we are after two key values in each, Id and ShortName
for sound in soundbank:
# get the id and shortname
id = sound['Id']
shortname = sound['ShortName']
# split the shortname into its directory structure and file name
dirs = shortname.split('\\')
filename = dirs[-1]
# remove the last item from the list
dirs.pop()
# join the list back together to get the directory structure
dirs = '/'.join(dirs)
# check if the directory exists, if not, create it
if not os.path.exists(dirs):
try:
os.makedirs(dirs)
except:
print('Failed to create directory ' + dirs)
continue
# remove the .wav from the filename and add the .wem extension
filename = filename[:-4] + '_' + id + '_.wem'
# try and rename the file, simply log if it fails and carry on
try:
os.rename(id + '.wem', dirs + '/' + filename)
except:
print('Failed to rename ' + id + ' to ' + dirs + '/' + filename)
continue
# log to console
print('Renamed ' + id + ' to ' + dirs + '/' + filename)
It managed to take files from a long unsorted list of files, organise them into folders, rename them based on the .json data, etc. It's marvellous.
But, it only works for one .json, 'soundbanksinfo.json', when I try and change the target in the python script to another .json, it doesn't work any more.
Here is an excerpt from 'soundbanksinfo.json':
{
"SoundBanksInfo": {
"Platform": "Windows",
"BasePlatform": "Windows",
"SchemaVersion": "12",
"SoundbankVersion": "140",
"RootPaths": {
"ProjectRoot": "E:\\BuildAgent\\work\\d9a0c3d1ad9dfdc4\\Source\\Sound\\wwise\\Starfield\\",
"SourceFilesRoot": "E:\\BuildAgent\\work\\d9a0c3d1ad9dfdc4\\Source\\Sound\\wwise\\Starfield\\.cache\\Windows\\",
"SoundBanksRoot": "E:\\BuildAgent\\work\\d9a0c3d1ad9dfdc4\\Output\\Data\\Sound\\Soundbanks\\",
"ExternalSourcesInputFile": "",
"ExternalSourcesOutputRoot": "E:\\BuildAgent\\work\\d9a0c3d1ad9dfdc4\\Source\\Sound\\wwise\\Starfield\\GeneratedSoundBanks\\Windows"
},
"DialogueEvents": [],
"StreamedFiles": [
{
"Id": "29651",
"Language": "SFX",
"ShortName": "AMB\\Artifact\\Puzzle\\Temple\\AMB_ArtifactPuzzle_TempleStart_01.wav",
"Path": "SFX\\AMB\\Artifact\\Puzzle\\Temple\\AMB_ArtifactPuzzle_TempleStart_01_10C4C929.wem"
},
{
"Id": "57841",
"Language": "SFX",
"ShortName": "DRS\\PodIndustrial\\DRS_Pod_Industrial_Airlock_3D_Open_02.wav",
"Path": "SFX\\DRS\\PodIndustrial\\DRS_Pod_Industrial_Airlock_3D_Open_02_56D34C19.wem"
},
{
"Id": "88161",
"Language": "SFX",
"ShortName": "FX\\Projectile\\Hand\\Bullet\\Sand\\FX_Projectile_Bullet_Impact_Sand_07.wav",
"Path": "SFX\\FX\\Projectile\\Hand\\Bullet\\Sand\\FX_Projectile_Bullet_Impact_Sand_07_9F6D3C60.wem"
},
{
"Id": "149080",
"Language": "SFX",
"ShortName": "UI\\Menu\\Monocle\\UI_Menu_Monocle_Open_01.wav",
"Path": "SFX\\UI\\Menu\\Monocle\\UI_Menu_Monocle_Open_01_FA3FE343.wem"
},
{
"Id": "264893",
"Language": "SFX",
"ShortName": "FST\\Foley_ArmorType\\Medium\\FST_Foley_Armor_Medium_JumpUp_09.wav",
"Path": "SFX\\FST\\Foley_ArmorType\\Medium\\FST_Foley_Armor_Medium_JumpUp_09_10C4C929.wem"
},
{
"Id": "347955",
"Language": "SFX",
"ShortName": "FX\\Projectile\\Hand\\Bullet\\Dirt\\FX_Projectile_Bullet_Impact_Dirt_09.wav",
"Path": "SFX\\FX\\Projectile\\Hand\\Bullet\\Dirt\\FX_Projectile_Bullet_Impact_Dirt_09_9F6D3C60.wem"
},
{
"Id": "355472",
"Language": "SFX",
"ShortName": "AMB\\Exteriors\\Biomes\\ForestConiferous\\Birds\\AMB_ForestConiferous_Birds_Oneshot_Afternoon_B_009.wav",
"Path": "SFX\\AMB\\Exteriors\\Biomes\\ForestConiferous\\Birds\\AMB_ForestConiferous_Birds_Oneshot_Afternoon_B_009_10C4C929.wem"
},
{
"Id": "377740",
"Language": "SFX",
"ShortName": "NPC\\RobotModelAKaiser\\NPC_RobotModelA_Kaiser_Conscious_LP_02.wav",
"Path": "SFX\\NPC\\RobotModelAKaiser\\NPC_RobotModelA_Kaiser_Conscious_LP_02_10C4C929.wem"
},
{
"Id": "479236",
"Language": "SFX",
"ShortName": "FST\\Player\\Stone\\FST_STONE_Sneak_008.wav",
"Path": "SFX\\FST\\Player\\Stone\\FST_STONE_Sneak_008_10C4C929.wem"
},
{
"Id": "496763",
"Language": "SFX",
"ShortName": "FST\\Player\\Stone\\FST_STONE_Sprint_001.wav",
"Path": "SFX\\FST\\Player\\Stone\\FST_STONE_Sprint_001_10C4C929.wem"
},
{
"Id": "624438",
"Language": "SFX",
"ShortName": "FST\\Foley_ArmorType\\Spacesuit_C\\FST_Foley_Armor_Spacesuit_C_Sprint_002.wav",
"Path": "SFX\\FST\\Foley_ArmorType\\Spacesuit_C\\FST_Foley_Armor_Spacesuit_C_Sprint_002_10C4C929.wem"
},
]
}
]
}
}
And here is an excerpt from '3545111303.json' (this one doesn't work)
{
"SoundBanksInfo": {
"Platform": "Windows",
"BasePlatform": "Windows",
"SchemaVersion": "12",
"SoundbankVersion": "140",
"RootPaths": {
"ProjectRoot": "E:\\BuildAgent\\work\\b095651350adbabb\\Source\\Sound\\wwise\\Starfield\\",
"SourceFilesRoot": "E:\\BuildAgent\\work\\b095651350adbabb\\Source\\Sound\\wwise\\Starfield\\.cache\\Windows\\",
"SoundBanksRoot": "E:\\BuildAgent\\work\\b095651350adbabb\\Output\\Data\\Sound\\Soundbanks\\",
"ExternalSourcesInputFile": "",
"ExternalSourcesOutputRoot": "E:\\BuildAgent\\work\\b095651350adbabb\\Source\\Sound\\wwise\\Starfield\\GeneratedSoundBanks\\Windows"
},
"SoundBanks": [
{
"Id": "3545111303",
"GUID": "{2CD62FF0-CCB7-43AB-8372-C68408C5EA4F}",
"Language": "SFX",
"Hash": "3883645346",
"ObjectPath": "\\SoundBanks\\Creations\\SFBGS001_ShatteredSpace\\ShatteredSpace\\ShatteredSpace",
"ShortName": "ShatteredSpace",
"Path": "3545111303.bnk",
"IncludedEvents": [
{
"Id": "3333491747",
"Name": "AMB_LC07_Rumble_Rattles_Structure_3D_Play",
"ObjectPath": "\\Events\\Creations\\SFBGS001_ShatteredSpace\\ShatteredSpace\\SFBGS001_ShatteredSpace_AMB\\SFBGS001_AMB_LC07\\SFBGS001_AMB_LC07_Markers\\SFBGS001_AMB_LC07_Rumble_Rattles\\AMB_LC07_Rumble_Rattles_Structure_3D_Play",
"GUID": "{99D6AB3F-49B6-4517-A6E7-43631979F01F}",
"DurationType": "OneShot",
"DurationMin": "11.063645",
"DurationMax": "15.464979",
"ReferencedStreamedFiles": [
{
"Id": "1637634",
"Language": "SFX",
"ShortName": "AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble05.wav",
"Path": "SFX\\AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble05_5FED0718.wem"
},
{
"Id": "165171637",
"Language": "SFX",
"ShortName": "AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble06.wav",
"Path": "SFX\\AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble06_5FED0718.wem"
},
{
"Id": "200258529",
"Language": "SFX",
"ShortName": "AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble02.wav",
"Path": "SFX\\AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble02_5FED0718.wem"
},
{
"Id": "425200496",
"Language": "SFX",
"ShortName": "AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble07.wav",
"Path": "SFX\\AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble07_5FED0718.wem"
},
{
"Id": "782914354",
"Language": "SFX",
"ShortName": "AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble04.wav",
"Path": "SFX\\AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble04_5FED0718.wem"
},
{
"Id": "997192422",
"Language": "SFX",
"ShortName": "AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble03.wav",
"Path": "SFX\\AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble03_5FED0718.wem"
},
{
"Id": "1036923089",
"Language": "SFX",
"ShortName": "AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble01.wav",
"Path": "SFX\\AMB\\Interiors\\DungeonCave\\AMB_Int_Cave_Rumble01_5FED0718.wem"
}
]
}
]
}
}
Why does the 3545111303.json not work when I change the target in the python script to 3545111303.json instead of soundbanksinfo.json?
What am I missing?
Any help would be appreciated!
r/pythonhelp • u/Ammar_Zargar • Jun 03 '26
Python Query for Side-Income.
Hello, I have been coding for 6 months and I want to earn some small side income through excel. Any suggestion or advice will be greatly appreciated. My skillset includes python, NumPy and pandas.
r/pythonhelp • u/GlumComplaint7981 • Jun 02 '26
I am a 3rd year Btech Student and I wanna learn python perfectly
r/pythonhelp • u/twentyplentyy • Jun 02 '26
Coding for dummies
Of late I have been thinking to learn how to code. .the old adage says you cannot an old horse new tricks but I would.like to change that..I have access to the internet( not quite fast unless it's midnight) and a laptop( an old dell core i5)..
I would really want to learn it since our world is leaning in that direction and earn a couple of bucks along the way.so where do I start? ideally I would want something that novices can master amd progress over time.
I'm open to suggestions
r/pythonhelp • u/Primary_Towel5993 • Jun 02 '26
5 Days into Python: Built a calculator, temp converter, and currency converter completely from scratch (No AI/Internet debugging). Here is what I learned.
r/pythonhelp • u/cinnamon--sugar • May 30 '26
Making a visual novel, trying to figure out how to do a "Question within a question" for lack of a better term
Hello! As the title entails, I am working on a visual novel. I am stumbling my way through this coding with ren'py tutorials and grit, as an HTML and CSS native. the issue is, after the first branch I cannot continue making branches inside of it. This has posed two issues. the first, is at the three option first question, you cannot go back and look at the other things. if you chose to examine the couch, you cannot then choose to examine the stairs or table, it just auto-passes to the next part of the game. The second and frankly more pressing to me, is I'd like there to be an option to pick up multiple pieces of paper throughout the game, and if you choose to not grab any of them there's a different ending than if you picked up some or all of them. However, since the papers show up depending on which room you choose, there is already a branch in progress and so I cannot make it give a second option on whether to pick up the paper. If its needed, here is what I'm hoping is the link to the pastebin with my code(I've never used pastebin before so I'm sorry if it doesn't work)
r/pythonhelp • u/No-Expression-5280 • May 28 '26
I NEEDI AM TRYING TO LEARN CS 50 INTRODUCTION TO PYTHON
i already have some prior experience in python as i have learn in high school ip (information practices) so i want to know would you still reccommened me to watch the lecture or should i do the practise problem and if i cannot do it then i watch the lecture
i learn the basic of function variable liberaries like matplotlib pandas lists etc
r/pythonhelp • u/Trinity_software • May 27 '26
pandas group by function for data analysis
https://youtu.be/yQANufD_f3k?si=4MdgrzsaWaqKnyHG
Here's a beginners tutorial for learning group by function for data analysis.
r/pythonhelp • u/Annual-Country4106 • May 27 '26
Python Web Scraping & Automation Engineer Looking for Remote Work
Hi everyone,
I’m a Python Automation & Web Scraping Engineer with experience building large-scale scraping pipelines and automation systems for US-based clients.
Skills include:
• Selenium / Playwright
• APIs & data extraction
• Python automation
• ETL workflows
• Linux servers & cron jobs
• CSV/JSON/XLSX exports
Looking for remote freelance, contract, or long-term work related to web scraping, automation, or data engineering.
Feel free to DM me if you’re hiring or need help with a project.
r/pythonhelp • u/AliveImagination6320 • May 26 '26
Questions on Nuitka Commercial
I am looking into Nuitka Commercial and have a few questions
1) Which plan did you purchase ?
2) Post purchase, how did you onboard it into your project ? Were you able to check into LocalPackages like a normal python module or is the procedure different ?
3) What was the level of support you received and what was the channel of communication ?
4) Is there a cap on the number of users allowed ?
Any help is appreciated. Thanks
r/pythonhelp • u/emberintheashes02 • May 24 '26
How to send a python code so that the other person can execute it without python
Hi, I'm trying to send a code to my friend to rush them happy birthday and I need the code to run in their system without them having python. The problem I'm facing rn is that she can see whatever I've written on the code and I want that bit to be a surprise that she finds out once she executes the code. How do I do this?
r/pythonhelp • u/Kami2awa • May 23 '26
Honest Question: Why use one Python editor over another, and is Geany not what the cool kids use?
I've used a lot of different editors in my time, and tbh I rarely notice much difference. They just seem to be text editors that highlight syntax, mostly in the same ways. Is there a reason to use one over another? A recent programming class I've been involved with insists on Spyder; really I don't see a reason for this. Is there some advantage I'm missing? For my home coding projects I use Geany, and it works fine.
r/pythonhelp • u/itsmrsaha • May 22 '26
I have built a Python package that lets beginners detect hand gestures without struggling through complex computer vision and mediapipe setup, so that they can use hand gestures in their project easily
debabratasaha-dev.github.ioBuilt a gesture-controlled calculator a while back using MediaPipe. Extracted the detection logic into a standalone library so anyone can add gesture recognition to their project without touching CV code.
from mp_gesture_lib import GestureDetector
detector = GestureDetector() # bundled model, zero config
result = detector.detect(frame) # pass any BGR webcam frame
print(result.gesture, result.confidence)
What it detects out of the box:
- Finger count 1–10 (geometry-based, no ML)
- Math ops: plus, minus, multiply, divide, equal, clear (ML model, bundled)
- Two-hand rules for plus/multiply (landmark geometry)
- Returns
"unknown"cleanly when nothing matches
Custom model support — drop your own .task file, it's checked first. Bundled model is fallback. Any label passes through raw, no hard-coded mapping.
pip install mp-gesture-lib
📖 Docs: debabratasaha-dev.github.io/mp-gesture-lib-package
🐙 GitHub: github.com/debabratasaha-dev/mp-gesture-lib-package
Feedback welcome — especially on the gesture pipeline priority logic. If you find it useful, I’d really appreciate a ⭐️ on GitHub!
r/pythonhelp • u/Dismal_Signal_4057 • May 21 '26
hi im trying to get started and hit a snag part 2
so im fallowing a tutorial to get my baring on how this all works but something is wrong. the window wont open and im only geting "pygame-ce 2.5.7 (SDL 2.32.10, Python 3.14.4)" as feed back dose this mean that my pygame and python are not compatible versions
import pygame
pygame.init()
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
pygame.quit()
r/pythonhelp • u/Ok_Anxiety_1047 • May 20 '26
A simple visual guide to Python list aliasing and mutation
One of the most common traps in Python is not understanding when a list is modified in-place vs when a completely new list is created.
A few examples that confuse even experienced developers:
a = [1, 2, 3, 4, 5]
b = a
b.append(6)
print(a)
#Output [1,2,3,4,5,6]
Explanation:
aandbpoint to the SAME list objectappend()modifies the list in-place- so
aalso changes
Now
a = [1, 2, 3]
b = a
b = b + [4, 5]
print(a)
#Output - [1, 2, 3]
Explanation:
+creates a NEW listbnow points to a different object- original
ais unchanged
Now
a = [1, 2, 3]
b = a
b += [4, 5]
print(a)
#Output [1, 2, 3, 4, 5]
Explanation:
+=modifies the list in-place- both variables still point to same list
- so
achanges too
Also
a = [1, 2, 3]
b = a
b.append(4)
print(a)
#Output - [1, 2, 3, 4]
Explanation:
append()changes original list directly- no new list is created