[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

basic output question

John Deas

1/25/2008 10:45:00 PM

Hi, I am very new to Python (1 evening...)
I need to process a series of files (toto-1.txt toto-2.txt toto-3.txt
toto-4.txt), and as such I created a small program to go through the
files in a directory. I want to call the script with arguments, like

python script.py toto- 1 1 4

my script is as follow :

import sys
sys.argv
header= sys.argv[1]
start =eval(sys.argv[2])
step =eval(sys.argv[3])
nbit =eval(sys.argv[4])

for i in range(nbit):
filename=header+str(start+i*step)+'.txt'
f=open(filename,'r')
f.read()
f.close()

My problem is that f.read() outputs nothing, and should I print
filename, I can check that they are well formed, and the files sits in
the same directory as my script.

Anyone could help me on this ?
2 Answers

Alan G Isaac

1/26/2008 12:18:00 AM

0

John Deas wrote:
> My problem is that f.read() outputs nothing

Since ``open`` did not give you an IOError,
you did get a handle to the files,
so this suggests that the files you read
are empty...

Alan Isaac

Wildemar Wildenburger

1/26/2008 12:54:00 AM

0

John Deas wrote:
> Hi, I am very new to Python (1 evening...)
> I need to process a series of files (toto-1.txt toto-2.txt toto-3.txt
> toto-4.txt), and as such I created a small program to go through the
> files in a directory. I want to call the script with arguments, like
>
> python script.py toto- 1 1 4
>
> my script is as follow :
>
> import sys
> sys.argv
> header= sys.argv[1]
> start =eval(sys.argv[2])
> step =eval(sys.argv[3])
> nbit =eval(sys.argv[4])
>
Style note: You should probably use int() instead of eval. Not only is
this safer (as in security), it is also safer (as in robust), because it
will throw an error early if you feed it something other than an int.


> for i in range(nbit):
> filename=header+str(start+i*step)+'.txt'
> f=open(filename,'r')
> f.read()
> f.close()
>
> My problem is that f.read() outputs nothing, and should I print
> filename, I can check that they are well formed, and the files sits in
> the same directory as my script.
>
f.read() spills the text into nothingness. You may want to write its
output to a variable. ;)

/W