On 11-05-2011 00:08, Jorge Romero wrote:
Is there any special reason for deploying that functionality from
scratch by yourself? Can't you use os bulit-in module?
Perhaps you can find this useful
http://docs.python.org/library/os.html#os.listdir. That way you don't
deal with OS peculiarities such as the one Brett Ritter pointed.
On Tue, May 10, 2011 at 8:45 AM, Brett Ritter <swift...@swiftone.org
<mailto:swift...@swiftone.org>> wrote:
On Tue, May 10, 2011 at 8:17 AM, Tommy Bell <to...@enkelthed.dk
<mailto:to...@enkelthed.dk>> wrote:
> scandir('c:\tmp')
> this doesnt work, I know why - but i dont know how to fix it.
> The reason it doesnt work is because isfile requires a file, but
current contains a path.
Not quite. Stick a "print path" as the first line in scandir.
Notice that it doesn't print out c:\tmp
The issue is that Windows (Well, DOS, back in the day) decided to use
backslashes as the path separator, where the rest of the world
(mostly) used slashes. This meant that most programming languages use
backslashes to "escape" characters to have special meaning. Putting
"\n" in a string puts in not an "n" but a newline character. \t is a
tab. This causes you (and many other windows programmers) a little
bit of distress today, in many programming languages.
To have your string recognize that your backslash is an actual real
backslash you can escape it:
scandir('c:\\tmp')
After that your code should work fine (it runs on my system, but I'm
not on windows).
This filepath issue has many details you can look up or ask about, but
this should get you started.
--
Brett Ritter / SwiftOne
swift...@swiftone.org <mailto:swift...@swiftone.org>
_______________________________________________
Tutor maillist - Tutor@python.org <mailto:Tutor@python.org>
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor
--
Jorge Romero
Thanks for the assistance. I've attempted to use glob, I actually did
try with os.listdir, but then I had to combine the basename (as I
understand listdir, is only returns a string with basename) with the
path, and I have trouble getting that to work with calling it self when
I ran into a folder, ie the recursivecalls
import os,glob
##use os.walk
def scand(path):
for current in glob.glob(os.path.join(path,'*')):
if os.path.isdir(current) == True:
print "Folder: " + os.path.basename(current)
scand(current)
if os.path.isfile(current) == True:
print "file: " + os.path.basename(current)
scand('c:\\Users\Tommy\\docs')
instead, with an idea of using os.walk whic I havent tried yet, I dont
much mind limiting it to a windows system as I will be using this on my
own machine, but I see the idea of not being exposed to OS relevant
limitations.
The reason for attempting to do this manually is because I am looking at
making a script that can help me manage my abundent number of articles
and reports for my research in a sensible way - and I thought it would
be a good way of learning python.
Ultimately the idea is to expand it into now only listing the folders
and files, but writing this information to a file (or a database) with
added info such as notes and comments on the article/report in a .txt
file that shares the same name as the pdf, and which contains extra info
/Regards
Tommy
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor