Renaming of files in OS directory

Thomas Jollans thomas at jollans.com
Sun Aug 8 13:45:35 CEST 2010


On 08/08/2010 12:23 PM, blur959 wrote:
> On Aug 8, 6:05 pm, Thomas Jollans <tho... at jollans.com> wrote:
>> On 08/08/2010 10:35 AM, blur959 wrote:
>>
>>
>>
>>> On Aug 8, 4:15 pm, Chris Rebert <c... at rebertia.com> wrote:
>>>> On Sun, Aug 8, 2010 at 1:02 AM, blur959 <blur... at hotmail.com> wrote:
>>>>> Hi, all, I am writing a program that renames files inside OS
>>>>> directories the user provides. I am at the early stage of writing it
>>>>> and I encountered some problems.
>>
>>>>> Below is my code. There is an error i received when i run this code.
>>>>> The error is, WindowsError: [Error 123] The filename, directory name,
>>>>> or volume label syntax is incorrect.
>>
>>>> Well, what directory did you input? Apparently it wasn't a valid or extant one.
>>
>>>> Cheers,
>>>> Chris
>>>> --http://blog.rebertia.com
>>
>>> I input for e.g, "C:" it works, basically, if i input a hard code
>>> string inside os.listdir it works, but if i stored the string that the
>>> user keyed inside a variable and run os.listdir with the variable,
>>> there is that error. But inputing hard code string inside os.listdir
>>> isn't what I want when I am writing this program.
>>
>> You didn't answert the question. What is the actual string you pass to
>> os.listdir after you got it from the user? You could
>>     print repr(fileroot)
>> to find out.
>>
>> My tentative guess is that maybe Windows doesn't like newlines in file
>> names (I know UNIX allows them, but they're still usually a bad idea)
>> and maybe you string ends with a newline.
> 
> 
> 
> I do not get what you mean. The string i passed in is stored inside
> the variable fileroot. In the case I tested, i inputed the string "C:
> \" inside the raw_input and stored it inside fileroot, I tried
> printing repr(fileroot) and it gave me "C:\" as the result and when i
> tried running os.listdir(fileroot) i got the error. The string i
> passed to os.listdir is the string i keyed inside fileroot under the
> raw_input?

You are passing a string to os.listdir. (you call that string fileroot).
There is probably something wrong with that string. In principle, it
doesn't matter where you got the string from - with raw_input() or by
hard-coding the string.

repr(fileroot) is almost certainly not "C:\" -- that is not a valid
string literal.

What did you enter exactly?

-- Thomas




More information about the Python-list mailing list