2013-07-02 4 views
0

У меня есть каталог, полный подкаталогов.Цитирование по списку каталогов для создания подкаталогов

Что я хотел бы сделать, это написать сценарий Python, что петли через каждый из этих поддиректорий и для каждого из них создает дополнительный подкаталог и заселяет его с тремя файлами.

Например:

directories = ['apple', 'orange', 'banana'] 

for fruit in directories: 

# 1) create subdirectory called "files" 
# 2) Populate "files" with file1, file2, file3 

Я знаком с созданием каталогов и файлов в командной строке Терминала (Mac) , но я не знаю, как назвать эти команды из Python.

Я был бы очень признателен за советы относительно того, как выглядят эти команды и как их использовать.

ответ

1

Вы можете добиться того, что вы хотите с помощью клавиш встроенных функций os.path.walk (ходить по дереву каталогов) и os.mkdir (на самом деле создать каталоги).

+0

Я читал через библиотеку ОС, пытаясь увидеть, где она говорит о создании файлов аналогично созданию каталога с использованием mkdir, но я не могу найти что-либо. У вас есть предложения – user2521067

+0

Вы пытаетесь создать новый пустой файл и написать ему или просто скопировать его из другого места? Если вы хотите записать в новый файл, используйте встроенную функцию [open] (http://docs.python.org/2/library/functions.html#open) и напишите в файл. Если вы хотите скопировать существующий файл, используйте [shutil.copy] (http://docs.python.org/2/library/shutil.html). – bogatron

0

Python os В модуле есть все необходимое для создания каталогов, в частности os.mkdir().

Вы не говорите, что хотите в этих файлах. Если вам нужна копия другого («шаблона») файла, используйте shutil.copy(). Если вы хотите создать новый файл и записать его из своего сценария, достаточно встроенного open().

Вот пример (заметим, что она предполагает, что «фруктовые» каталоги уже существуют в текущем каталоге и что подкаталог «файлы» еще не существует):

import os 
import shutil 

directories = ['apple', 'orange', 'banana'] 

for fruit in directories: 

    os.mkdir("%s/files" % fruit) 

    with open("%s/files/like" % fruit, "w") as fp: 
     fp.write("I like %ss" % fruit) 
    fp.close() 

    with open("%s/files/hate" % fruit, "w") as fp: 
     fp.write("I hate %ss" % fruit) 
    fp.close() 

    with open("%s/files/dont_care_about" % fruit, "w") as fp: 
     fp.write("I don't care about %ss" % fruit) 
    fp.close() 
0

использование питона import os и os.system('command_to_run_in_shell') и вы готовы к работе !!