动态创建后无法访问文件夹

时间:2016-02-03 17:18:25

标签: python

我无法访问名为' book'的文件夹。 (通过程序)及其动态创建后的文件。我正在用ocropy做一些图像二值化(见最后)。当我使用python的os.listdir列出文件和文件夹时,它会显示该文件夹,但是当我尝试更改文件夹权限时(或尝试通过程序cannot access 'book': No such file or directory访问该文件夹。

subprocess.call(['chmod', '-R', '+w', 'book'])

我不明白为什么会这样。如果您遇到类似的问题,请分享一些想法。

使用以下代码,它会列出' book'但是,我可以通过Windows 7 GUI

访问它
files = os.listdir('folder')
for file in files:
    print file

产生'书籍的二值化代码'动态文件夹

def binarization(imagefile):
    args = ["python", "ocropus-nlbin", "-n", imagefile, "-o book"]
    print "opening process"
    proc = Popen(args, stdout=PIPE, stderr=PIPE)
    print "launching it"
    ret = proc.communicate()

    code = proc.returncode
    if code == 0:
        print "success!"
    if code != 0:
        if code == 2:
            raise PythonException, "File not found"
        if code == -11:
            raise PythonException, "Language code invalid: "+ret[1]
        else:
            raise PythonException, ret[1] 

1 个答案:

答案 0 :(得分:0)

os.listdir列出目录中的文件和文件夹。如果要使用文件/文件夹,则必须在其前面添加目录

$ mkdir folder
$ mkdir folder/book
$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.listdir('folder')
['book']
>>> os.path.exists('book')
False
>>> os.path.exists(os.path.join('folder', 'book'))
True