[Tutor] folder and file list (Jorge Romero)

Robert Sjöblom robert.sjoblom at gmail.com
Wed May 11 00:42:11 CEST 2011


>> 
>> 
>> 
>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
>> 
>> 
> 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 <swiftone at swiftone.org> wrote:
> 
>> On Tue, May 10, 2011 at 8:17 AM, Tommy Bell <tommy at 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
>> swiftone at swiftone.org
>> _______________________________________________
>> Tutor maillist  -  Tutor at python.org
>> To unsubscribe or change subscription options:
>> http://mail.python.org/mailman/listinfo/tutor
>> 
> 
> 
> 
> -- 
> Jorge Romero
> -------------- next part --------------

Actually, I have had no problems using forward slashes (ie, "C:/User/Data/etc" being a valid path) at all. There's also os.path.normpath() if you feel that there's a need to convert forward slashes to backward slashes, or the raw string literal, r (r"C:\User\Data\etc").

Sorry for not snipping much of the message, smartphone is a bit clunky for that, to say theleast. 

Best regards,
Robert S


More information about the Tutor mailing list