"No such file or directory" 来自 os.mkdir

"No such file or directory" from os.mkdir

正在处理一个 python 项目,它所做的是查看 lifehacker.com 的索引,然后找到带有 class "headline h5 hover-highlight entry-title" 的所有标签,然后它为每个目录创建文件。但唯一的问题是当我运行它时,我得到 OSError: [Errno 2] No such file or directory: "/home/root/python/The Sony Smartwatch 3: A Runner's Perspective (Updated: 1/5/2015)"

帮助会很好,谢谢!

这是我的自动取款机代码:

import re
import os
import urllib2
from bs4 import BeautifulSoup
from mechanize import Browser

url = "http://lifehacker.com/"
url_open = urllib2.urlopen(url)
soup = BeautifulSoup(url_open.read())

link = soup.findAll("h1",{"class": "headline h5 hover-highlight entry-title"})
file_directory = "/home/root/python/"

for i in link:
    os.mkdir(os.path.join(file_directory, str(i.text)))
    print "Successfully made directory(s)", i.text, "!"
else:
    print "The directory", i.text, "either exists, or there was an error!"

清理你的文件名。 (不这样做也会导致安全问题,特别是如果您不阻止以 ../ 开头的内容)。

这可以很简单:

safe_name = i.text.replace('/', '_')
os.mkdir(os.path.join(file_directory, safe_name))

事实上,您的代码试图在名为 The Sony Smartwatch 3: A Runner's Perspective (Updated: 1 的目录中的名为 5 的目录中创建名为 2015) 的目录。由于其中 none 存在,并且 os.mkdir() 不是递归的,因此您会得到有问题的错误。 (如果您想要递归操作,请参阅os.makedirs())。