Connecting Tech Pros Worldwide Forums | Help | Site Map

noobie mkdir problem/question

ProvoWallis
Guest
 
Posts: n/a
#1: Mar 25 '06
Hi,

I'm trying to write a script that will create a new directory and then
write the results to this newly created directory but it doesn't seem
to work for me and I don't know why. I'm hoping someone can see my
mistake or at least point me in the right direction.

I start like this capturing the root directory and making my new
"xrefs" directory (I can see the new folder in windows explorer):

root = raw_input("Enter the path where the program should run: ")

xrefs = os.path.join(root,'xrefs')

if (os.path.isdir(xrefs) == 0):
os.mkdir(xrefs)
else:
sys.exit('LOG folder already exists. Exiting program.')

....I do everything else...

And then I'm trying to write the results out to xrefs. But instead of
writing to xrefs they're written to the original directory, i.e., root.
and I'm not sure why.

outputFname = given + '.log'
outputFile = open(os.path.join(xrefs,outputFname), 'w')
outputFile.write(data)
outputFile.close()

Anyone?

Thanks,

Greg


jordan.taylor2@gmail.com
Guest
 
Posts: n/a
#2: Mar 26 '06

re: noobie mkdir problem/question


if (os.path.isdir(xrefs) == 0):
os.mkdir(xrefs)

--------------------------------------------

os.path.isdir(stuff) returns
True or False

ProvoWallis
Guest
 
Posts: n/a
#3: Mar 26 '06

re: noobie mkdir problem/question


I understand that but I'm still puzzled. Is this the reason why I can't
write files to this directory?

The xrefs directory is created the way I expect it would be using mkdir
but I can't seem to write to it. I thought that my results would be
written to the xrefs directory here but they're ending up in the
original folder not the subfolder.

outputFile = open(os.path.join(xrefs,outputFname), 'w')
outputFile.write(data)
outputFile.close()

What am I missing?

jordan.taylor2@gmail.com wrote:[color=blue]
> if (os.path.isdir(xrefs) == 0):
> os.mkdir(xrefs)
>
> --------------------------------------------
>
> os.path.isdir(stuff) returns
> True or False[/color]

jordan.taylor2@gmail.com
Guest
 
Posts: n/a
#4: Mar 26 '06

re: noobie mkdir problem/question


First, what version of python are you using? 2.4.2 (and some previous
versions) use file() instead of open(), although open may still work.

also, if your code in the previous post is still using:

outputFname = given + '.log'
outputFile = open(os.path.join(xrefs,outputFname), 'w')
I hope you have 'given' defined somewhere, since it's not in the code
you show.

give this a try:

output = file(xrefs + r'\filenamewhatever', 'w')
output.write(data)
output.close()

Larry Bates
Guest
 
Posts: n/a
#5: Mar 26 '06

re: noobie mkdir problem/question


Except for the fact that I don't have any idea where "given"
variable comes from. This works perfectly for me. It writes
data into <root>/xrefs/given.log perfectly.

In the future you should cut/paste your code so we can see
enough to help better. Here is my code with a few changes.

import os
import sys
root = raw_input("Enter the path where the program should run: ")
xrefs = os.path.join(root,'xrefs')

if not os.path.exists(xrefs):
os.makedirs(xrefs)

else:
sys.exit('LOG folder already exists. Exiting program.')

outputFname = 'given.log' # You need to change this line
outputFile = open(os.path.join(xrefs,outputFname), 'w')
data="this is a test\n"
outputFile.write(data)
outputFile.close()


-Larry Bates

ProvoWallis wrote:[color=blue]
> Hi,
>
> I'm trying to write a script that will create a new directory and then
> write the results to this newly created directory but it doesn't seem
> to work for me and I don't know why. I'm hoping someone can see my
> mistake or at least point me in the right direction.
>
> I start like this capturing the root directory and making my new
> "xrefs" directory (I can see the new folder in windows explorer):
>
> root = raw_input("Enter the path where the program should run: ")
>
> xrefs = os.path.join(root,'xrefs')
>
> if (os.path.isdir(xrefs) == 0):
> os.mkdir(xrefs)
> else:
> sys.exit('LOG folder already exists. Exiting program.')
>
> ...I do everything else...
>
> And then I'm trying to write the results out to xrefs. But instead of
> writing to xrefs they're written to the original directory, i.e., root.
> and I'm not sure why.
>
> outputFname = given + '.log'
> outputFile = open(os.path.join(xrefs,outputFname), 'w')
> outputFile.write(data)
> outputFile.close()
>
> Anyone?
>
> Thanks,
>
> Greg
>[/color]
Closed Thread