Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

help

9 views
Skip to first unread message

arami...@gmail.com

unread,
Jan 30, 2013, 4:16:51 PM1/30/13
to
Hi everyone! I don't mean to intrude, but ive heard great things about this group and ive stumped myself with my python code.

heres my code:
#! /usr/bin/python

import sys

global labelList
labelList= dict()

global counter
counter = 0

def execute(line):
if line.find("::print") != -1:
stripPrint = line.find("::print")
startPrint = line.find('"', stripPrint)
stopPrint = line.find('"', startPrint + 1)
printSection = line[startPrint + 1 : stopPrint]
print(printSection)

if line.find("::label") != -1:
stripLabel = line.find("::label")
startLabel = line.find(' ', stripLabel)
stopLabel = line.find('--', startLabel + 1)
label = line[startLabel + 1 : stopLabel]
line.strip("\r\n")
labelList[label] = counter

if len(sys.argv) < 2:
print("error: no input files")
print("compilation terminated")

else:
fileName = sys.argv[1]
jadeFile = open(fileName, 'r')

for line in jadeFile:
counter = counter + 1
execute(line)

jadeFile.close()

i = 0

while i < len(labelList):
print(labelList.keys()[i], ":", labelList.values()[i])
i = i + 1


and its giving me a bunch of errors thanks for the help in advance!

Ian Kelly

unread,
Jan 30, 2013, 5:08:57 PM1/30/13
to Python
On Wed, Jan 30, 2013 at 2:16 PM, <arami...@gmail.com> wrote:
> Hi everyone! I don't mean to intrude, but ive heard great things about this group and ive stumped myself with my python code.
>
> heres my code:

It would be helpful if you would also include the error that you get
when trying to run the code.

> global labelList
> labelList= dict()
>
> global counter
> counter = 0

That said, these lines stick out as being obviously wrong. The global
statement is used within the context of a function to declare that a
name used within that function has global scope rather than local
scope. There is no meaning to using the statement at the module level
like this -- Python already knows the name is global, because it's not
being used within a function -- and I'd be surprised if this didn't
result in a SyntaxError.

Joel Goldstick

unread,
Jan 30, 2013, 5:09:49 PM1/30/13
to arami...@gmail.com, pytho...@python.org
On Wed, Jan 30, 2013 at 4:16 PM, <arami...@gmail.com> wrote:
Hi everyone! I don't mean to intrude, but ive heard great things about this group and ive stumped myself with my python code.

No intrusion.  That is what the list is for.

Two points:

You should use a descriptive subject line -- "Help" isn't really descriptive.
You should run your code, cut and paste the traceback you get showing the errors.  This is extremely useful for people to help you with, and as you program, you will learn how useful it can be to find problems on your own.

So, do that, and come back with that info

Chris Angelico

unread,
Jan 30, 2013, 5:20:14 PM1/30/13
to pytho...@python.org
On Thu, Jan 31, 2013 at 8:16 AM, <arami...@gmail.com> wrote:
> Hi everyone! I don't mean to intrude, but ive heard great things about this group and ive stumped myself with my python code.

Hi! As others have said, this is no intrusion, but it'd help a lot if
you posted your errors and used a more useful subject line.
Additionally, when you post, can you give some example lines from the
file? This part of your code is impossible for us to simulate:

> fileName = sys.argv[1]
> jadeFile = open(fileName, 'r')
>
> for line in jadeFile:
> counter = counter + 1
> execute(line)
>
> jadeFile.close()

But this much I can suggest:

> i = 0
>
> while i < len(labelList):
> print(labelList.keys()[i], ":", labelList.values()[i])
> i = i + 1

Instead of iterating with a counter, you can iterate with a Python 'for' loop.

for label,count in labelList.items():
print(label,":",count)

It's that simple!

ChrisA

Steven D'Aprano

unread,
Jan 30, 2013, 9:42:24 PM1/30/13
to
arami...@gmail.com wrote:

> its giving me a bunch of errors thanks for the help in advance!

Yay! Guessing games! I love guessing games! Let me see if I can guess the
errors you have...

/usr/bin/python: bad interpreter: No such file or directory

You haven't actually got Python installed, or at least not where you think
it is.

Am I close? If not, I recommend that you actually show us the errors you are
getting.



--
Steven

Dave Angel

unread,
Jan 30, 2013, 10:13:54 PM1/30/13
to pytho...@python.org
davea@think2:~/temppython$ python aram.py
error: no input files
compilation terminated


These messages are triggered by sys.argv being less than 2. Cure is to
pass some string as the first argument on the command line.

Fixed that:

davea@think2:~/temppython$ ./aram.py myfile.txt
Traceback (most recent call last):
File "./aram.py", line 33, in <module>
jadeFile = open(fileName, 'r')
IOError: [Errno 2] No such file or directory: 'myfile.txt'

(notice that I pasted the full traceback into this message.)
Problem is that the program is treating that parameter as a filename,
and I don't have a file by that filename.

davea@think2:~/temppython$ ./aram.py aram.py
) != -1:
)
(' stripLabel = line.find("::label")', ':', 20)
('!= -1:', ':', 19)

Worked perfectly. Of course, nobody has said what it's supposed to do.
So anything that doesn't display an error must be okay.

How about describing what version of Python this is intended for, how
you ran it, and what errors you're getting. Don't paraphrase, don't
summarize (lots of errors ???!), just copy/paste.

And if it's appropriate, show a sample data file for it to open, not
attached, but pasted into your email message.

--
DaveA
0 new messages