Re: Get number of lines in file

2005-05-30 Thread Magnus Lycka
[EMAIL PROTECTED] wrote:
> Thanks!  I was trying len(cpn_version) and that didn't work.

What's your problem? You get a value that's one more than
you expected? You should use splitlines() instead of split('\n'),
or easier, use readlines() instead of read(). Of course, with
a modern python you can just iterate over the file, but note
the difference between split and splitlines when the last line
is complete and ends with a newline character:

 >>> a = """dgdgsdfg
... sdfgsdfgsdfg
... sdfgsdfgsdfg
... sdfgsdfgsdfg
... """
 >>> a
'dgdgsdfg\nsdfgsdfgsdfg\nsdfgsdfgsdfg\nsdfgsdfgsdfg\n'
 >>> a.split('\n')
['dgdgsdfg', 'sdfgsdfgsdfg', 'sdfgsdfgsdfg', 'sdfgsdfgsdfg', '']
 >>> a.splitlines()
['dgdgsdfg', 'sdfgsdfgsdfg', 'sdfgsdfgsdfg', 'sdfgsdfgsdfg']
 >>>

If you're allergic to splitlines ;) you could do...

 >>> a.rstrip().split('\n')
['dgdgsdfg', 'sdfgsdfgsdfg', 'sdfgsdfgsdfg', 'sdfgsdfgsdfg']

...but it depends how you want to view files that end with
several linefeeds in a row (or other whitespace for that
matter).

 >>> a = dfgdfg
... dfgdfg
...
... dgfdfg
...
...
...
... """
 >>> a.split('\n')
['"dfgdfg', 'dfgdfg', '', 'dgfdfg', '', '', '', '']
 >>> a.splitlines()
['"dfgdfg', 'dfgdfg', '', 'dgfdfg', '', '', '']
 >>> a.rstrip().split('\n')
['"dfgdfg', 'dfgdfg', '', 'dgfdfg']

In other words, the right solution depends on what behaviour
you want for such cases (if they might exist with your files).

Experimenting like this with the interpreter is a very
convenient way to get a grip on things in Python, and one of
the reasons that Python debugging is usually quicker than
debugging in other languages.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Get number of lines in file

2005-05-27 Thread Steven Bethard
Elliot Temple wrote:
> 
> On May 27, 2005, at 12:17 PM, [EMAIL PROTECTED] wrote:
> 
>> I have read in a file and need to get the number of lines.
>>
>> cpn_file = open('Central Part number list.txt')
>> cpn_version = cpn_file.read().split('\n')
>>
>> I want to know the number of elements in cpn_version.
> 
> Could you use:
> 
> count_lines = len(cpn_file.readlines())

Or if you're worried about reading all of cpn_file into memory at once, 
you could try something like:

 sum(1 for line in cpn_file)

or in Python 2.3:

 sum([1 for line in cpn_file])

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


Re: Get number of lines in file

2005-05-27 Thread ssmith579
Thanks!  I was trying len(cpn_version) and that didn't work.

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


Re: Get number of lines in file

2005-05-27 Thread Elliot Temple

On May 27, 2005, at 12:17 PM, [EMAIL PROTECTED] wrote:

> I have read in a file and need to get the number of lines.
>
> cpn_file = open('Central Part number list.txt')
> cpn_version = cpn_file.read().split('\n')
>
> I want to know the number of elements in cpn_version.

Could you use:

count_lines = len(cpn_file.readlines())

-- Elliot Temple
http://www.curi.us/


---
[This E-mail scanned for viruses by Declude Virus]

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


Get number of lines in file

2005-05-27 Thread ssmith579
I have read in a file and need to get the number of lines.

cpn_file = open('Central Part number list.txt')
cpn_version = cpn_file.read().split('\n')

I want to know the number of elements in cpn_version.

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