Function for examine content of directory
Tigerstyle
laddosingh at gmail.com
Thu Sep 6 16:26:32 EDT 2012
Thanks, just what I was looking for :-)
T
kl. 17:20:27 UTC+2 torsdag 6. september 2012 skrev MRAB følgende:
> On 06/09/2012 15:56, Tigerstyle wrote:
>
> > Hi guys,
>
> >
>
> > I'm trying to write a module containing a function to examine the contents of the current working directory and print out a count of how many files have each extension (".txt", ".doc", etc.)
>
> >
>
> > This is the code so far:
>
> > --
>
> > import os
>
> >
>
> > path = "v:\\workspace\\Python2_Homework03\\src\\"
>
> > dirs = os.listdir( path )
>
> > filenames = {"this.txt", "that.txt", "the_other.txt","this.doc","that.doc","this.pdf","first.txt","that.pdf"}
>
> > extensions = []
>
> > for filename in filenames:
>
> > f = open(filename, "w")
>
> > f.write("Some text\n")
>
> > f.close()
>
> > name , ext = os.path.splitext(f.name)
>
> > extensions.append(ext)
>
> >
>
> > # This would print all the files and directories
>
> > for file in dirs:
>
> > print(file)
>
> >
>
> > for ext in extensions:
>
> > print("Count for %s: " %ext, extensions.count(ext))
>
> >
>
> > --
>
> >
>
> > When I'm trying to get the module to print how many files each extension has, it prints the count of each ext multiple times for each extension type. Like this:
>
> >
>
> > this.pdf
>
> > the_other.txt
>
> > this.doc
>
> > that.txt
>
> > this.txt
>
> > that.pdf
>
> > first.txt
>
> > that.doc
>
> > Count for .pdf: 2
>
> > Count for .txt: 4
>
> > Count for .doc: 2
>
> > Count for .txt: 4
>
> > Count for .txt: 4
>
> > Count for .pdf: 2
>
> > Count for .txt: 4
>
> > Count for .doc: 2
>
> >
>
> That's because each extension can occur multiple times in the list.
>
>
>
> Try the Counter class:
>
>
>
> from collections import Counter
>
>
>
> for ext, count in Counter(extensions).items():
>
> print("Count for %s: " % ext, count)
More information about the Python-list
mailing list