Total No. of "Records" in a File?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • W. eWatson

    Total No. of "Records" in a File?

    I have an ordinary text file with a CR at the end of a line, and two numbers
    in each line. Is there some way to determine the number of lines (records)
    in the file before I begin reading it?

    --
    Wayne Watson (Watson Adventures, Prop., Nevada City, CA)

    (121.015 Deg. W, 39.262 Deg. N) GMT-8 hr std. time)
    Obz Site: 39° 15' 7" N, 121° 2' 32" W, 2700 feet

    Web Page: <www.speckledwi thstars.net/>
  • Nick Dumas

    #2
    Re: Total No. of &quot;Records&q uot; in a File?

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    Err...you want to know what is in a file before you open it? This could
    be done if you keep some external database documenting changes made to
    the file. But unless I misunderstand what you're saying, then it's not
    possible to know the contents of a file without opening and reading that
    file.

    W. eWatson wrote:
    I have an ordinary text file with a CR at the end of a line, and two
    numbers in each line. Is there some way to determine the number of lines
    (records) in the file before I begin reading it?
    >
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.9 (MingW32)
    Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

    iEYEARECAAYFAki wSZ4ACgkQLMI5fn dAv9hXugCeJs5XB kLLne6ljqQggB/MoAVs
    SNIAoJxsU04cwcZ MrH9QjElAbMD34R dK
    =RlmP
    -----END PGP SIGNATURE-----

    Comment

    • Grant Edwards

      #3
      Re: Total No. of &quot;Records&q uot; in a File?

      On 2008-08-23, W. eWatson <notvalid2@sbcg lobal.netwrote:
      I have an ordinary text file with a CR at the end of a line, and two numbers
      in each line. Is there some way to determine the number of lines (records)
      in the file before I begin reading it?
      If the lines are fixed lengh (e.g. always 12 bytes long), then
      you can use os.stat() or os.fstat() to find the size of the
      file. Divide the size of the file by the number of bytes in a
      line, and you get the number of lines.

      --
      Grant


      Comment

      • Fredrik Lundh

        #4
        Re: Total No. of &quot;Records&q uot; in a File?

        W. eWatson wrote:
        I have an ordinary text file with a CR at the end of a line, and two
        numbers in each line. Is there some way to determine the number of lines
        (records) in the file before I begin reading it?
        In the general case, no. A file is just a bunch of bytes. If you know
        that all lines have exactly the same length, you can of course fetch the
        file size and divide by the line size, but that doesn't work for
        arbitrary files.

        Why do you need to know the number of lines before reading it, btw?

        </F>

        Comment

        • W. eWatson

          #5
          Re: Total No. of &quot;Records&q uot; in a File?

          Nick Dumas wrote:
          -----BEGIN PGP SIGNED MESSAGE-----
          Hash: SHA1
          >
          Err...you want to know what is in a file before you open it? This could
          be done if you keep some external database documenting changes made to
          the file. But unless I misunderstand what you're saying, then it's not
          possible to know the contents of a file without opening and reading that
          file.
          >
          W. eWatson wrote:
          >I have an ordinary text file with a CR at the end of a line, and two
          >numbers in each line. Is there some way to determine the number of lines
          >(records) in the file before I begin reading it?
          >>
          -----BEGIN PGP SIGNATURE-----
          Version: GnuPG v1.4.9 (MingW32)
          Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
          >
          iEYEARECAAYFAki wSZ4ACgkQLMI5fn dAv9hXugCeJs5XB kLLne6ljqQggB/MoAVs
          SNIAoJxsU04cwcZ MrH9QjElAbMD34R dK
          =RlmP
          -----END PGP SIGNATURE-----
          Maybe. I could see it if the file were truly in a record format. The # of
          records might be kept by the OS. It's conceivable that Python or the OS
          might see a file with a CR as "recordized ". All unlikely though. Just checkin'.

          How about in a slightly different case. Suppose I want to know the number of
          files in a folder? The OS and maybe some Python method might know that.

          --
          Wayne Watson (Watson Adventures, Prop., Nevada City, CA)

          (121.015 Deg. W, 39.262 Deg. N) GMT-8 hr std. time)
          Obz Site: 39° 15' 7" N, 121° 2' 32" W, 2700 feet

          Web Page: <www.speckledwi thstars.net/>

          Comment

          • Grzegorz Staniak

            #6
            Re: Total No. of &quot;Records&q uot; in a File?

            On 23.08.2008, W. eWatson <notvalid2@sbcg lobal.netwroted :
            Maybe. I could see it if the file were truly in a record format. The # of
            records might be kept by the OS. It's conceivable that Python or the OS
            might see a file with a CR as "recordized ".
            Isn't it much easier to use a database instead? That's what they're made for.
            How about in a slightly different case. Suppose I want to know the number of
            files in a folder? The OS and maybe some Python method might know that.
            Use "os" and "os.path". For a simple case the length of "os.listdir ()" could
            suffice, but then you might need to filter out sub-directories, or maybe
            count files in them too using "os.walk()" .

            GS
            --
            Grzegorz Staniak <gstaniak _at_ wp [dot] pl>

            Comment

            • W. eWatson

              #7
              Re: Total No. of &quot;Records&q uot; in a File?

              Fredrik Lundh wrote:
              W. eWatson wrote:
              >
              >I have an ordinary text file with a CR at the end of a line, and two
              >numbers in each line. Is there some way to determine the number of
              >lines (records) in the file before I begin reading it?
              >
              In the general case, no. A file is just a bunch of bytes. If you know
              that all lines have exactly the same length, you can of course fetch the
              file size and divide by the line size, but that doesn't work for
              arbitrary files.
              >
              Why do you need to know the number of lines before reading it, btw?
              >
              </F>
              >
              Actually, it was a matter of curiosity, and maybe absent mindedness. I was
              envisioning a program where I might want to run up and down a file a lot,
              sometimes deleting a record interactively at the request of the user.
              However, I wanted to keep him alert to the total number of records
              remaining. However, in retrospect, I more likely do this with files in a
              folder. I also want him to be able to skip around in the Win OS folder by
              saying something like go forward 3 files. I'd like not to have to read all
              the files between the two points. The whole idea needs some more thinking.

              --
              Wayne Watson (Watson Adventures, Prop., Nevada City, CA)

              (121.015 Deg. W, 39.262 Deg. N) GMT-8 hr std. time)
              Obz Site: 39° 15' 7" N, 121° 2' 32" W, 2700 feet

              Web Page: <www.speckledwi thstars.net/>

              Comment

              • Bruno Desthuilliers

                #8
                Re: Total No. of &quot;Records&q uot; in a File?

                W. eWatson a écrit :
                I have an ordinary text file with a CR at the end of a line, and two
                numbers in each line. Is there some way to determine the number of lines
                (records) in the file before I begin reading it?
                How could you know how many times a given character appears in file
                without reading the whole file ?

                You could of course store metadata about one file in another file[1],
                but then you'd have to read and parse this other file, and it might go
                out of sync.

                [1] or at the begining of your 'data' file - but you still have to rad
                at least this part, and you still have the potential sync problem.

                Or you could use a fixed-size binary format for your records, and try
                dividing the file size by the record size.

                What's your concrete use case, exactly ?


                Comment

                • Bruno Desthuilliers

                  #9
                  Re: Total No. of &quot;Records&q uot; in a File?

                  W. eWatson a écrit :
                  Fredrik Lundh wrote:
                  >W. eWatson wrote:
                  >>
                  >>I have an ordinary text file with a CR at the end of a line, and two
                  >>numbers in each line. Is there some way to determine the number of
                  >>lines (records) in the file before I begin reading it?
                  >>
                  >In the general case, no. A file is just a bunch of bytes. If you
                  >know that all lines have exactly the same length, you can of course
                  >fetch the file size and divide by the line size, but that doesn't work
                  >for arbitrary files.
                  >>
                  >Why do you need to know the number of lines before reading it, btw?
                  >>
                  ></F>
                  >>
                  Actually, it was a matter of curiosity, and maybe absent mindedness. I
                  was envisioning a program where I might want to run up and down a file a
                  lot, sometimes deleting a record interactively at the request of the
                  user. However, I wanted to keep him alert to the total number of records
                  remaining. However, in retrospect, I more likely do this with files in a
                  folder. I also want him to be able to skip around in the Win OS folder
                  by saying something like go forward 3 files. I'd like not to have to
                  read all the files between the two points. The whole idea needs some
                  more thinking.
                  >
                  The whole idea is that you should learn what a DBMS is good for, IMHO.

                  Comment

                  Working...