Hi everyone,

I am new to Python (and to programming) and, now that I have worked through most of Learning Python, I have set myself the exercise of writing a little text-based program to catalogue the contents of my CD collection.

I have written enough code to allow me to create instances of an Album class with attributes like name, artist, year etc. However, I am at a loss as to how to save these instances so that they can be retrieved the next time I run the program. I assume I need to write them to a file somehow, and while I know how to write and read to and from files, I do not know how to write instances.

I am sure this has an obvious and easy answer but I just cannot find it anywhere!

If anybody could help I would be most grateful.

Tom
On 13 Jul 2009, at 14:44, tutor-requ...@python.org wrote:

Send Tutor mailing list submissions to
        tutor@python.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://mail.python.org/mailman/listinfo/tutor
or, via email, send a message with subject or body 'help' to
        tutor-requ...@python.org

You can reach the person managing the list at
        tutor-ow...@python.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Tutor digest..."


Today's Topics:

  1. Re: for statement with addition ... (Rommel Asibal)
  2. Re: for statement with addition ... (Kent Johnson)
  3. Xampp & Python (Rommel Asibal)
  4. Re: thesaurus (Dave Angel)
  5. Re: for statement with addition ... (Dave Angel)
  6. Re: for statement with addition ... (Markus Hubig)


----------------------------------------------------------------------

Message: 1
Date: Mon, 13 Jul 2009 05:22:28 -0600
From: Rommel Asibal <rumzs...@gmail.com>
To: Markus Hubig <mhu...@gmail.com>
Cc: tutor@python.org
Subject: Re: [Tutor] for statement with addition ...
Message-ID:
        <de6a4e6f0907130422x2e1e5bf6n3fcfff4d4739e...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

Markus,

That looks like a typo.  remove it and it should work.

On Mon, Jul 13, 2009 at 4:50 AM, Markus Hubig <mhu...@gmail.com> wrote:

Hi @all,

within diveintopython I often found a for-statement like this:

f for f in bla:
   print f

So what actually is the first f for ... is it just to declare f before
starting the for loop? I can't find any information on python.org
and it's hard to google this kinda stuff.

- Markus

--
-------------------"it's like this"------
even samurai have teddy bears
and even teddy bears get drunk

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20090713/ad0174f6/attachment-0001.htm >

------------------------------

Message: 2
Date: Mon, 13 Jul 2009 07:37:45 -0400
From: Kent Johnson <ken...@tds.net>
To: Markus Hubig <mhu...@gmail.com>
Cc: tutor@python.org
Subject: Re: [Tutor] for statement with addition ...
Message-ID:
        <1c2a2c590907130437y4f19d357r811d0c956b53e...@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1

On Mon, Jul 13, 2009 at 6:50 AM, Markus Hubig<mhu...@gmail.com> wrote:
Hi @all,

within diveintopython I often found a for-statement like this:

f for f in bla:
??? print f

So what actually is the first f for ... is it just to declare f before
starting the for loop? I can't find any information on python.org
and it's hard to google this kinda stuff.

That is not Python, maybe a copy/paste artifact? Omit the initial 'f
'. Can you point to an example on the web site or in the printed book?

Kent


------------------------------

Message: 3
Date: Mon, 13 Jul 2009 05:56:46 -0600
From: Rommel Asibal <rumzs...@gmail.com>
To: Python Tutor List <tutor@python.org>
Subject: [Tutor] Xampp & Python
Message-ID:
        <de6a4e6f0907130456t491ea967i40ab083aebdda...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

Hello All,

I am trying to go through the "Python Power!" book and i am at the part where i need to setup a web server. I am thinking of using XAMPP and have checked its site and wanted to try using mod_python. I am using Python 3.1 but from initial looks it seems mod_python doesnt support it, could someone verify if that is correct? Does that mean i have to go to python 2.6 for it
to work?


Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20090713/5925e053/attachment-0001.htm >

------------------------------

Message: 4
Date: Mon, 13 Jul 2009 07:57:54 -0400
From: Dave Angel <da...@ieee.org>
To: Pete Froslie <fros...@gmail.com>
Cc: Alan Gauld <alan.ga...@btinternet.com>, tutor@python.org,     Dave
        Angel <da...@ieee.org>
Subject: Re: [Tutor] thesaurus
Message-ID: <4a5b2142.7080...@ieee.org>
Content-Type: text/plain; charset=UTF-8; format=flowed

Pete Froslie wrote:
The url function btw:

def url():


  fin = open("journey_test.txt", "r")
  response = re.split(r"[/|/,\n, , ,:\"\"\.?,)(\-\<>\[\]'\r']",
fin.read())
  thesaurus = API_URL + response[word_number] + '/'  #API_URL is
established at the start of the code
  return thesaurus


yes. Essentially, it grabs each word from a text file and combines it with the other stuff to create a url string that I send through an API to an online thesaurus. I was attempting to strip it this way as a weak method for
cleaning out the words I don't want searched from the text file.

Along with the the other functions the code currently scans a text file and replaces each of its words with one of their synonyms.. slightly legible gibberish, but that's what I'm interested in for now. It is a project to help me start learning pyhton as well being intended to take a different
form in an artwork I'm working on.

thanks.
petef


BTW, constants like API_URL are fine uses for globals.

I can't get my head around this url() function definition, or how it
would be called.  It appears that your program looks like:

Open the file and find out how many words are in it.
for each word,
   Open the file again, parse the whole thing yet again, to figure out
the nth word.  Then throw away the parsing, plus any information about
where in the file the word was found, just keeping a generated URL
   use the URL to access a website, looking up a replacement word.
   Re-open the file, parse it till you find something resembling the
word involved, then substitute the synonym, and write it back out.


So if you have a file with 1000 words in it, you'll open it and parse it
2001 times.  And part of your symptoms result from the second parsing
trying to replace words that aren't really words.

If I were you, I'd simplify the problem, and solve the simplified
problem in a pretty way, keeping in mind what the complete problem is.
Then expand it incrementally from there.

For example, instead of a website, you can build a map of synonyms (see
my example earlier).  Just a dozen should be fine for testing.
Instead of a file with arbitrary text, you could use a simple string of
words, without punctuation, capitalization or other complexities.

Now, write a set of functions that solve that problem, and gradually add
in the complexities of the original problem.


And try to do each operation once, both for efficiency and to avoid
errors when it's slightly different the two times you might do it. To
me that means the final program should have this kind of flow:

Open the file, and start parsing.
     if the next sequence is punctuation and white space, copy it to
the output.
     if the next sequence is a word, extract it, call synonym() on it,
and copy that to the output
    continue till the infile is done
Perhaps copy the outfile on top of the infile.

See the suggestions for functions I made much earlier in this thread.


DaveA


------------------------------

Message: 5
Date: Mon, 13 Jul 2009 08:08:22 -0400
From: Dave Angel <da...@ieee.org>
To: Markus Hubig <mhu...@gmail.com>
Cc: tutor@python.org
Subject: Re: [Tutor] for statement with addition ...
Message-ID: <4a5b23b6.7030...@ieee.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Markus Hubig wrote:
Hi @all,

within diveintopython I often found a for-statement like this:

f for f in bla:
   print f

So what actually is the first f for ... is it just to declare f before
starting the for loop? I can't find any information on python.org
and it's hard to google this kinda stuff.

- Markus


Please give us a reference, as to exactly where you saw that. It gives a syntax error in Python 2.62, as I expected it would. That's not how a
for statement works.


On the other hand, if you enclose that phrase in square brackets, it
makes a list comprehension.

mylist = [f for f in bla]

A list comprehension builds a new list, where the first pieces says what
goes into the list, and the second part describes how to generate it.
In this case, if bla is already a list, this just copies the list. But
consider
mylist = [f*f  for f in bla]

That builds a new list from the old, where each item is the square of
the corresponding old item.

List comprehension is something you can look up in the help. Also look
up generator expression, which uses similar syntax.


DaveA


------------------------------

Message: 6
Date: Mon, 13 Jul 2009 15:44:09 +0200
From: Markus Hubig <mhu...@gmail.com>
To: tutor@python.org
Subject: Re: [Tutor] for statement with addition ...
Message-ID:
        <1a3190fd0907130644n7ac6be52y5e672abdfbbf9...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

On Mon, Jul 13, 2009 at 2:08 PM, Dave Angel <da...@ieee.org> wrote:

Markus Hubig wrote:

Hi @all,

within diveintopython I often found a for-statement like this:

f for f in bla:
  print f

So what actually is the first f for ... is it just to declare f before
starting the for loop? I can't find any information on python.org
and it's hard to google this kinda stuff.

- Markus



Please give us a reference, as to exactly where you saw that. It gives a syntax error in Python 2.62, as I expected it would. That's not how a for
statement works.


On the other hand, if you enclose that phrase in square brackets, it makes
a list comprehension.

mylist = [f for f in bla]

A list comprehension builds a new list, where the first pieces says what goes into the list, and the second part describes how to generate it. In
this case, if bla is already a list, this just copies the list.  But
consider
mylist = [f*f  for f in bla]

That builds a new list from the old, where each item is the square of the
corresponding old item.

List comprehension is something you can look up in the help. Also look up
generator expression, which uses similar syntax.


DaveA


Yes your right, the examples are enclosed in square brackets ...
so this is the explanation I was looking for, thank you.
And now I also found the explanation in
diveintopython<http://diveintopython.org/native_data_types/mapping_lists.html >!
;-)

- Markus

--
-------------------"it's like this"------
even samurai have teddy bears
and even teddy bears get drunk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20090713/88308fba/attachment.htm >

------------------------------

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


End of Tutor Digest, Vol 65, Issue 56
*************************************

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to