WorldViz User Forum

WorldViz User Forum (
-   Vizard (
-   -   Writing text files with executable (

adimov 03-21-2008 02:03 PM

Writing text files with executable

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


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):
print "SUCCESS: " + str(i)
return outputsequence

sequence = Parser.getSequence()
print sequence
duration = max(sequence)


# 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
# Makes sure the file data is really written to the harddrive
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==' ':

# 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
return sequence

if __name__ == "__main__":
#testing code
sequence = getSequence()
for item in sequence:
print item

csv file:


farshizzo 03-21-2008 03:21 PM

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:

def getPublishedPath(filename):
        publishPath = viz.getOption('viz.publish.path','')
        if publishPath:
                return '/'.join([publishPath,filename])
        return filename

file = open(getPublishedPath('response.txt'), 'w')

All times are GMT -7. The time now is 04:35 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Copyright 2002-2018 WorldViz LLC