473,392 Members | 1,355 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,392 software developers and data experts.

file.readlines() - gives me error (bad file descriptor)

Hey guys,

I can't figure this one out, why is this simple script giving me
problems?

logfile=file(r'test.txt','w')
logfile.write('datetime')
test=logfile.readlines()

When I run it I get the error message:
Traceback (most recent call last):
File "C:\Documents and Settings\Gregory\My Documents\Get New Great
Job\testfile.py", line 3, in ?
test=logfile.readlines()
IOError: [Errno 9] Bad file descriptor

I'm running Windows XP, Python 2.3.3 (#51, Dec 18 2003, 20:22:39) [MSC
v.1200 32 bit (Intel)] on win32
Any help would be greatly appricated.

Thanks,

Greg

Jul 18 '05 #1
9 29194
Thus spake wo********@gmail.com (wo********@gmail.com):
Hey guys,

I can't figure this one out, why is this simple script giving me
problems?

logfile=file(r'test.txt','w')

^^^

You've opened the file in write mode. To read from the file,
you'll have to reopen it in read mode ("r").

Also, if the file you're dealing with really is a log file,
you probably want don't want to open it in write mode for
writing information either, since that will truncate the
file and lose previously logged information. Try append mode
("a") instead.

Cheers,
Aldo
--
Aldo Cortesi
al**@nullcube.com
http://www.nullcube.com
Off: (02) 9283 1131
Mob: 0419 492 863
Jul 18 '05 #2
I tried
logfile=file(r'test.txt','w+')
logfile.write('datetime')
test=logfile.readlines()
print test

I got :
Open an encoded file using the given mode and return
a wrapped version providing transparent encoding/decoding.

Note: The wrapped version will only accept the object format
defined by the codecs, i.e. Unicode objects for most builtin
codecs. Output is also codec dependent and will usually by
Unicode as well.

Files are always opened in binary mode, even if no binary mode
was specified. This is done to avoid data loss due to encodings
using 8-bit values. The default file mode is 'rb' meaning to
open the file in binary read mode.

encoding specifies the encoding which is to be used for the
file.

errors may be given to define the error handling. It defaults
to 'strict' which causes ValueErrors to be raised in case an
encoding 
and a hell lot of junk. Can anyone explain that???
AFAIK w+ was ment for opening a file for both writting and reading...

Regards,
Garry
On Thu, 6 Jan 2005 12:03:27 +0530, Vishnu <vi******@acmet.com> wrote:
logfile = file(r'test.txt','w')
logfile.write('datetime')
logfile.close() # <- close the file

logfile = file(r'test.txt','r') # <- Open the file in read mode
test=logfile.readlines()


~Vishnu.

-----Original Message-----
From: py************************************@python.org
[mailto:py************************************@pyth on.org] On Behalf Of
wo********@gmail.com
Sent: Thursday, January 06, 2005 11:53 AM
To: py*********@python.org
Subject: file.readlines() - gives me error (bad file descriptor)

Hey guys,

I can't figure this one out, why is this simple script giving me
problems?

logfile=file(r'test.txt','w')
logfile.write('datetime')
test=logfile.readlines()

When I run it I get the error message:
Traceback (most recent call last):
File "C:\Documents and Settings\Gregory\My Documents\Get New Great
Job\testfile.py", line 3, in ?
test=logfile.readlines()
IOError: [Errno 9] Bad file descriptor

I'm running Windows XP, Python 2.3.3 (#51, Dec 18 2003, 20:22:39) [MSC
v.1200 32 bit (Intel)] on win32
Any help would be greatly appricated.

Thanks,

Greg

--
http://mail.python.org/mailman/listinfo/python-list

--
http://mail.python.org/mailman/listinfo/python-list

--
Thanks and Regards,
GSS
Jul 18 '05 #3
logfile=file(r'test.txt','a+')
logfile.write('datetime')
logfile.flush()
test=logfile.readlines()
print test

I added logfile.flush(), the 'datetime' was written in the file
correctly but I couldn't get any result...

Crazy!
Garry
Jul 18 '05 #4
There's nothing crazy going on here. The file's current position moves
as you write into it. Both read and write operation use the same
offset. The tell() method gives you the current position at any time.
When you append to a file the position moves to the end of the file so
that the next write happens at the end. You normally wouldn't read
from the file that you are writing into. To read from the beginning,
change the position with seek. Here's how you do it:
logfile=file(r'test.txt','a+')
logfile.write('datetime')
logfile.flush()
test=logfile.readlines()
print test [] logfile.tell() 8L logfile.seek(0,0)
test=logfile.readlines()
print test
['datetime']
On Thu, 6 Jan 2005 12:30:03 +0530, Gurpreet Sachdeva
<gu***************@gmail.com> wrote: logfile=file(r'test.txt','a+')
logfile.write('datetime')
logfile.flush()
test=logfile.readlines()
print test

I added logfile.flush(), the 'datetime' was written in the file
correctly but I couldn't get any result...

Crazy!
Garry
--
http://mail.python.org/mailman/listinfo/python-list

Jul 18 '05 #5
On Thu, 6 Jan 2005 12:55:22 +0530, Binu K S <bi*********@gmail.com> wrote:
The file's current position moves as you write into it. I concure and have figured out the solution BUT while reading from the
file from the position where the file handler is, should return
"Null/Blank/Anything in this world" BUT should not write into the
file...
The information written was that in the Buffer of the handler... Does
that mean reading a file will actually release the buffer by throwing
the contents in the file???

Please Comment...
You normally wouldn't read from the file that you are writing into.


May be applicable in handling logs...

Regards,
Garry
Jul 18 '05 #6
On Thu, 6 Jan 2005 13:17:11 +0530, Gurpreet Sachdeva
<gu***************@gmail.com> wrote:
On Thu, 6 Jan 2005 12:55:22 +0530, Binu K S <bi*********@gmail.com> wrote:
The file's current position moves as you write into it. I concure and have figured out the solution BUT while reading from the
file from the position where the file handler is, should return
"Null/Blank/Anything in this world" BUT should not write into the
file...
The information written was that in the Buffer of the handler... Does
that mean reading a file will actually release the buffer by throwing
the contents in the file???

I'm sorry, I didn't get what you trying to say here. Where do you see
a read altering the file? An example might help.
Please Comment...
You normally wouldn't read from the file that you are writing into.

May be applicable in handling logs...


Sometimes after opening a file you read the contents of a file and
then append to it. I haven't seen writing to a file and then going
back to see what was written.

Regards,
Garry

Jul 18 '05 #7
On Thu, 6 Jan 2005 14:27:40 +0530, Binu K S <bi*********@gmail.com> wrote:
I'm sorry, I didn't get what you trying to say here. Where do you see
a read altering the file? An example might help.


Please try:

logfile=file(r'test.txt','w+')
logfile.write('datetime')

Check the contents of test.txt, you will get what ever was required...

Now Run:

logfile=file(r'test.txt','w+')
logfile.write('datetime')
logfile.readlines()

and check the contents of test.txt???
My doubt is that logfile.write('datetime') will write datetime that is
universaly accepted but why all that junk is appending to that when I
add logfile.readlines()

Strange or Am I on drugs??? :o)

Please Comment...

Garry
Jul 18 '05 #8
http://mail.python.org/pipermail/pyt...er/007650.html
Rest assured you're not on drugs :)

On Thu, 6 Jan 2005 14:45:24 +0530, Gurpreet Sachdeva
<gu***************@gmail.com> wrote:
On Thu, 6 Jan 2005 14:27:40 +0530, Binu K S <bi*********@gmail.com> wrote:
I'm sorry, I didn't get what you trying to say here. Where do you see
a read altering the file? An example might help.


Please try:

logfile=file(r'test.txt','w+')
logfile.write('datetime')

Check the contents of test.txt, you will get what ever was required...

Now Run:

logfile=file(r'test.txt','w+')
logfile.write('datetime')
logfile.readlines()

and check the contents of test.txt???
My doubt is that logfile.write('datetime') will write datetime that is
universaly accepted but why all that junk is appending to that when I
add logfile.readlines()

Strange or Am I on drugs??? :o)

Please Comment...

Garry

Jul 18 '05 #9
wo********@gmail.com wrote:
Hey guys,

I can't figure this one out, why is this simple script giving me
problems?

logfile=file(r'test.txt','w')
logfile.write('datetime')
test=logfile.readlines()

When I run it I get the error message:
Traceback (most recent call last):
File "C:\Documents and Settings\Gregory\My Documents\Get New Great
Job\testfile.py", line 3, in ?
test=logfile.readlines()
IOError: [Errno 9] Bad file descriptor

I'm running Windows XP, Python 2.3.3 (#51, Dec 18 2003, 20:22:39) [MSC
v.1200 32 bit (Intel)] on win32
Any help would be greatly appricated.

Thanks,

Greg


As logfile is opened in write mode you cannot read it. You've to open it
in read mode for reading.
Greetings,
Abhijit

--
Everybody wants to go to heaven but nobody wants to die
Jul 18 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: rbt | last post by:
The below script produces a ' Bad File Descriptor' when executed. If I remove the try: except: statements, the script stops when the error occurs. The purpose of the script is to monitor the...
4
by: lynology | last post by:
I need help trying to figure why this piece of code gives me a "Bad File descriptor error" everytime I try to run it and invoke fflush. This piece of code simple outputs a char string to the output...
4
by: CSN | last post by:
At startup this appears in the log: WARNING: dup(0) failed after 3195 successes: Bad file descriptor What does it mean? __________________________________________________
7
by: news | last post by:
Recently our mail from our e-commerce site has been rejected by AOL due to an IP block because someone was using our PHP scripts to send spam. Well, I got that fixed. But our legitimate...
0
by: Astan Chee | last post by:
Hi everyone, I currently have a problem with reading one of my files. Normally I'd read files like so: overf = 'C:\\overf' my_overf = open(overf,'r') contents = my_overf.readlines()...
3
by: enjoylife27 | last post by:
Hi there, I am using Perl 5.8 with Apache 2.2 on Win XP SP2, all configured and working fine. I am able to run perl programs from command prompt. I am also able to call CGI scripts from HTML pages...
2
by: shathil | last post by:
#!/bin/bash cat /var/backup/192.168.4.3/dirnum.prn | awk '{print $1}' if i put above script can read the file. #!/bin/bash file1=/var/backup/192.168.4.3/dirnum.prn exec <$file1 ...
1
kirubagari
by: kirubagari | last post by:
Public Sub ReWrite_Open_File(ByVal FileNo As Long) Dim FileSize As Long, Buffer() As Byte ' PART 1: Read the file. FileSize = LOF(FileNo) ' Determine how large the file is (in bytes). ReDim...
5
rajiv07
by: rajiv07 | last post by:
Hi i have script for upload file to server.when i execute this script it gives Bad file Descriptor error.could u anybody help on this. use strict; use CGI; use CGI::Carp qw(fatalsToBrowser);...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.