Mar-14-2018, 12:42 PM
Using Python 2.7. I want to navigate filesystem on a raspberry pi Linux box with pygame module. I am developing on a windows box in eclipse because it is quicker. Using a gamepad, and the XYAB buttons, I want to move around the filesystem and operate on the files. I am having trouble changing directory in order to do this. I understand there is a different paradigm in Linux as opposed to windows but I am finding this confusing.
import pygame, sys, os,subprocess from subprocess import call from pygame.locals import * # This module contains various constants used by Pygame global p #position in file_list global n #counter global s #size of file_list global folder_cwd global file_list n=0 s=4 p=0 os.chdir("d:\\test\sub_1") folder_cwd=os.getcwd() file_list=os.listdir(os.getcwd()) s=len(file_list) A = 0 B = 1 X = 2 Y = 3 def finish(): ''' Self explanatory ''' pygame.quit() sys.exit(0) def input(events): ''' Function to handle events, particularly quitting the program ''' global file_name global p #position in the file_list global n #counter global file_list global folder_cwd file_list=os.listdir(os.getcwd()) s=len(file_list) for event in events: if event.type == JOYBUTTONDOWN: #using joystick buttons to navigate the filesystem button=event.button if(button==6): finish() #quit() #print button folder_cwd=os.getcwd() file_list=os.listdir(os.getcwd()) s=len(file_list) if(button==Y): #cycling through the files in the current directoty n+=1 #moving to next file p=n%s file_name=file_list[p] if (os.path.isdir(file_name)): print "This is a folder so we can change to it using the B button : ",file_name print "This is a file : ",file_name if(button==A): #cycling through the files in the current directoty n+=-1 p=abs(n%s) file_name=file_list[p] if (os.path.isdir(file_name)): print "This is a folder so we can change to it using the B button : ",file_name print "This is a file : ",file_name if(button==B): try: new_folder=os.path.abspath(file_name) print "os.path.basename : ",os.path.basename(file_name) print "os.path.abspath : ",os.path.abspath(file_name) print "os.getcwd() BEFORE CHANGE IS : ",os.getcwd() if os.path.isdir(new_folder): print new_folder,"is a folder" os.chdir(new_folder) print "folder_getcwd IS : ",os.getcwd() print "file_list is :",os.listdir(os.getcwd()) #DOESN'T PRINT THE FILE LIST else: print "Path doent exist" except: pass pygame.init() # Enable joystick support pygame.joystick.init() # Detect if joystick is available joysticks = pygame.joystick.get_count() for i in range(joysticks): joystick = pygame.joystick.Joystick(i) joystick.init() # The game loop while True: input(pygame.event.get())On pressing button B with a folder as the current 'file_name' there is no output from the line
print "file_list is :",os.listdir(os.getcwd())I understand python 3 makes this kind of thing easier.