"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()
)。
正在处理一个 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()
)。