python - os.mkdir() 和 os.makedirs() 的区别
PHPz
PHPz 2017-04-17 17:55:52
0
1
610
  • 语言: Python2.7

  • IDE: Pycharm

  • os: Linux

用Python做的 爬虫:

  • 第一个建立在 project folder 下用 os.mkdir('home/img/') 创建文件夹存储数据,文件夹正常建立

  • 第二个加入RedisQueue,爬虫程序放在 /usr/lib/python2.7, rq 主体放在 project folder下面, 在爬虫程序里面用 os.mkdir('home/img/') 报错,用 os.makedirs('home/img/') 正常建立。

为什么第一个没有报错?

thx in advance

PHPz
PHPz

学习是最好的投资!

全員に返信(1)
PHPzhong

os.mkdir と os.makedirs の違いは、os.makedirs がディレクトリを再帰的に作成することです。つまり、Linux の mkdir -p と同様に、中継されたディレクトリも一緒に作成されます。

リーリー

os.mkdir を使用する場合、指定したパス パラメーターがマルチレイヤー パスであり、リレー ディレクトリが存在しない場合 (上記の例の foo など)、Python はエラーを報告します。

しかし、os.makedirs を使用すると、Python は中間ディレクトリとともに作成されます。ただし、注意すべき点が 1 つあります。パスの末尾のディレクトリがすでに存在する場合、os.makedirs によっても例外が発生するということです。


問題はここにあると思います。最初にhomeディレクトリが存在するかどうかを確認できます。

ここでのパスの識別は、Python インタプリタを開始する場所によって異なることに注意してください。つまり、python を回避するには、home を実行するディレクトリの下に os.mkdir が存在する必要があります。 > エラーです。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート