#1
|
|||
|
|||
Writing text files with executable
Hi,
I'm trying to generate a text file via an executable but it is not creating a file. Here's the code (the main code, a Parser module and how the the input csv file should look): import viz import Parser viz.go() def CreateTemplate(): # Creates a sequence of zeroes and ones based on the duration and SampleRate and the input data length = int(duration+1) print "Duration: " + str(length) outputsequence = [] for i in range (0, length): if (i in sequence): outputsequence.append(1.0) print "SUCCESS: " + str(i) else: outputsequence.append(0.0) return outputsequence sequence = Parser.getSequence() print sequence duration = max(sequence) CreateTemplate() # Opens file 'response.txt' in write mode file = open('response.txt', 'w') # Define a function that saves data def SaveData(): # Create the output string data = CreateTemplate() for each in data: out = str(each) + '\n' # Write the string to the output file file.write(out) # Makes sure the file data is really written to the harddrive file.flush() print "DONE" # Define a function that is called every time a keyboard button is pressed def mykeyboard(key): # Calls the function SaveData and hands it the current time and key if key==' ': SaveData() # Defines a callback for keyboard events viz.callback(viz.KEYBOARD_EVENT, mykeyboard) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> import csv import viz SampleRate = 1.0 # samples per msec def getSequence(name = 'inputdata.csv', language = 'English'): mesg = viz.input('Enter the filename:') name = str(mesg) sequence = [] sequenceFile = open(name) reader = csv.reader(sequenceFile) for line in reader: # adjust the resolution of the input based on sample rate # We have to basically multiply each element in the input sequence by # the SampleRate (defined as samples per msec and assuming all input is in msec) # and use that integer result sequence.append(int(SampleRate*float(line[0]))) return sequence if __name__ == "__main__": #testing code sequence = getSequence() for item in sequence: print item >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> csv file: 1 2 3 8 9 |
#2
|
|||
|
|||
You need to prepend the publish EXE path to the filename, otherwise the file will be saved to the current directory, which is in a temp folder. Here is some code to get the full path to a file in a published EXE:
Code:
def getPublishedPath(filename): publishPath = viz.getOption('viz.publish.path','') if publishPath: return '/'.join([publishPath,filename]) return filename file = open(getPublishedPath('response.txt'), 'w') |
Thread Tools | |
Display Modes | Rate This Thread |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
text output | jaclyn.bill | Vizard | 2 | 10-24-2007 06:37 AM |
Error when playing wav files...? | vjonshih | Vizard | 1 | 05-23-2005 12:21 PM |
loading large wav files in vizard | tommahhh | Vizard | 1 | 05-16-2005 03:23 PM |
3d Text with Transparent Borders | vjosh | Vizard | 3 | 12-01-2004 10:50 AM |
Including Files that Include Other Files | vjosh | Vizard | 1 | 09-21-2004 04:44 PM |