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

Hiding

5 views
Skip to first unread message

Jay

unread,
Jul 29, 2005, 1:57:03 PM7/29/05
to
Well, im not no expert on the python programming language but i just
wanted to know if there was a quick way to hide certain things when
programming in python. Such as, i wanted some music or sound effects
with my python program. So, i type...

print "Music is by blah blah"
music-file = open(file containing the music"
hide(music-file)

thats wat im looking for, something i can hide the opening of files
because if i open that file, Windows Media Player will open and i would
like to hide that. And advise????

Jason Drew

unread,
Jul 29, 2005, 3:02:49 PM7/29/05
to
Well, using the open function in Python doesn't launch any application
associated with the file (such as Media Player). It just makes the
contents of the file accessible to your Python code. Also, I think
using file("C:\file.txt") is now preferred to open("C:\file.txt").

To answer the specific question of how to play a music file in Python,
search Google Groups for: pygame.mixer.music.load("music.mp3")
That will bring up a useful thread. Note that you will need to install
a module such as pygame or pymedia; they are not in the standard
library.

In general, I would also recommend some of the many good Python
tutorials. Some are listed here:
http://wiki.python.org/moin/BeginnersGuide

Good luck!

Larry Bates

unread,
Jul 29, 2005, 3:16:54 PM7/29/05
to
I can say with some certainty that opening a "music file" with open
won't launch media player. If rather, you do os.system('musicfile.mp3')
it will launch whatever application is associated with the file type
.mp3. You can either automate Windows Media player or use pymedia
to play such files.

Here are some links that might be of interest:

http://www.win32com.de/index.php?option=com_content&task=view&id=141&Itemid=259

http://pymedia.org/tut/

Larry Bates

Steven Bethard

unread,
Jul 29, 2005, 4:26:29 PM7/29/05
to
Jason Drew wrote:
> Also, I think using file("C:\file.txt") is now preferred
> to open("C:\file.txt").

Guido has said he wants to keep open() around as the way to open a
file-like object, with the theory that in the future open might also
support opening non-files (e.g. urls). So open("C:\file.txt") is still
fine, though isinstance(f, open) is probably not. ;)

STeVe

Benji York

unread,
Jul 29, 2005, 4:43:42 PM7/29/05
to pytho...@python.org
Steven Bethard wrote:
> So open("C:\file.txt") is still fine

I think it is more like it is recommended, not just OK.
--
Benji York

Peter Hansen

unread,
Jul 29, 2005, 5:08:01 PM7/29/05
to
Jason Drew wrote:
> Also, I think
> using file("C:\file.txt") is now preferred to open("C:\file.txt").

As others have noted, "open" is preferred as the method for opening
files, while "file" is the _type_ involved, for testing or subclassing
or what-have-you.

But neither file("C:\file.txt") nor open("C:\file.txt") is actually
correct at all, unless you have strange files whose names start with
ASCII FF characters. '\f' is an escape sequence, equivalent to '\x0c'.

Always use forward slashes ("C:/file.txt") in path names unless you are
passing them to the shell, or use raw strings (r"C:\file.txt") to avoid
mysterious problems with escape sequences.

-Peter

Jay

unread,
Jul 29, 2005, 11:05:13 PM7/29/05
to
thanks for the great info and urls, i have downloaded the pymedia
module and playing around with it now. Thx alot

Jay

unread,
Jul 30, 2005, 3:51:12 AM7/30/05
to
but also, wat if i needed to hide the loading of a file or the even
hide the whole python window to run in background?? is there no module
or function i can use????

Thorsten Kampe

unread,
Jul 30, 2005, 7:21:37 AM7/30/05
to
* Jay (2005-07-30 08:51 +0100)

> but also, wat if i needed to hide the loading of a file

As others have pointed out: your question is pointless as opening a
file doesn't load it or open it in your preferred application.

You are confusing Operating System semantics with Python semantics.

You're probably only asking this question because you've never
actually tried it.

The solution for your problem is to read a beginner's tutorial about
Python.

> or the even hide the whole python window to run in background?? is
> there no module or function i can use????

On windows: use pythonw.exe instead of python.exe.

Jason Drew

unread,
Aug 1, 2005, 2:02:08 PM8/1/05
to
Ah, good point, thanks. Must stop forgetting that "C:\file.txt" is bad.

The whole open()/file() clairification is useful too. The Python docs
for the file() constructor simply state that, "File objects ... can be
created with the built-in constructor file() described in section 2.1,
'Built-in Functions.'"
(http://python.org/doc/2.4.1/lib/bltin-file-objects.html)

That's followed by a footnote that states, "file() is new in Python
2.2. The older built-in open() is an alias for file()."

At first sight, that to me suggests that open() has been somewhat
deprecated by file().

However, the description of many of the file methods on the same page
refers to opening files using open(), e.g.:
"mode: The I/O mode for the file. If the file was created using the
open() built-in function, this will be the value of the mode
parameter."

It all becomes relatively clear in section 2.1, "Built-in Functions"
where the entry for file() states, "The file() constructor is new in
Python 2.2 and is an alias for open(). Both spellings are equivalent.
The intent is for open() to continue to be preferred for use as a
factory function which returns a new file object. The spelling, file is
more suited to type testing (for example, writing 'isinstance(f,
file)')."

I guess that clears it up. Though perhaps the Python doc for the file()
constructor should add that open() is the preferred general-purpose way
to open a file or file-like object?

Thanks again

0 new messages