On 04/10/2013 10:44 AM, Woody 544 wrote:
I have a script that worked before I moved it to another folder.  I
cannot understand why I am getting a 'No such file or directory'
error, when the file is in the folder.

Any clues would be much appreciated.  Thanks!

MJ

Here is a copy and paste of the script up to the error, output/error
and a check for the file:

SCRIPT:
import os, string, codecs
os.chdir('W:\\BEP\\DOS reports\\Q1 FY13\\BEP_Tool4DOS')

folder = 'W:\\BEP\\DOS reports\\Q1 FY13\\BEP_Tool4DOS\\FY13Q1_responses'
files = os.listdir(folder)

#os.walk(folder)

fy13q1dict = {'country' : 'countryname', 'title':'titlename',
'travel':'traveldata',
'publications':'pubdata','conferences':'confdata','highlights':'higlightdata','upcoming':'upcomingdata'}
countryname = ()
titlename = ()

for i in files:
     fy13q1dict = {'country' : 'countryname', 'title':'titlename'}
     fp = codecs.open(i,mode='rb',encoding=None,errors='replace',buffering=1)
     data = str(fp.read())
     data = data.replace('\xa0',' ')
     data = data.split()

OUTPUT:


Traceback (most recent call last):
   File "W:\BEP\DOS reports\Q1 FY13\BEP_Tool4DOS\bep_dos_tool.py", line
22, in <module>
     fp = codecs.open(i,mode='rb',encoding=None,errors='replace',buffering=1)
   File "C:\Python27\lib\codecs.py", line 881, in open
     file = __builtin__.open(filename, mode, buffering)
IOError: [Errno 2] No such file or directory: 'Algeria_688_RVF.txt'

CHECK FOR FILE IN FOLDER:
os.listdir('W:\\BEP\\DOS reports\\Q1 FY13\\BEP_Tool4DOS\\FY13Q1_responses')
['Algeria_688_RVF.txt', 'Egypt_31060_RVFEnvir


As Mark points out, your problem is that you've used a different directory for os.chdir.

I'd like to point out that I'm heavily biased against ever changing "current working directory" in a non-trivial application. The current directory is analogous to a global variable, and they should all be constant. Now, if you want to change it once, at program entry, then it's like a constant that gets iniialized once.

But if you are going to use the chkdir, then all your code that deals with that directory should use relative paths. If you'd done os.listdir(".") you'd have seen the problem.

My preference is to use absolute directories for every reference, in which case you'd use something like
    ...open(os.path.join(directory, i), ...

With of course a better name than 'i', which is traditionally an integer. (since 1967, anyway)

--
DaveA
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to