Rumah > Soal Jawab > teks badan
语言: 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
PHPz2017-04-17 17:57:52
Perbezaan antara
os.mkdir dan os.makedirs ialah os.makedirs
akan mencipta direktori secara rekursif, yang bermaksud bahawa direktori yang disampaikan juga akan dibuat bersama, sama seperti mkdir -p
dalam Linux.
>>> import os
>>> os.mkdir('foo/bar')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory: 'foo/bar'
>>> os.makedirs('foo/bar')
Apabila menggunakan os.mkdir
, jika parameter laluan yang anda berikan ialah laluan berbilang lapisan dan jika direktori geganti tidak wujud (seperti foo
dalam contoh di atas), Python akan melaporkan ralat.
Tetapi jika anda menggunakan os.makedirs
, Python akan dibuat bersama-sama dengan direktori perantaraan. Tetapi satu perkara yang perlu diberi perhatian ialah jika direktori di hujung laluan sudah wujud, os.makedirs
juga akan menyebabkan pengecualian.
Saya rasa masalah anda ada di sini, anda boleh menyemak sama ada direktori home
wujud pada mulanya.
Perlu diambil perhatian bahawa pengenalan laluan di sini bergantung pada tempat anda memulakan penterjemah Python Maksudnya, anda mesti memastikan bahawa mesti ada python
di bawah direktori tempat anda menjalankan home
untuk mengelakkan <🎜. > kesilapan. os.mkdir