2016-12-24 3 views
0

Как создать foo.txt в нескольких каталогах с помощью python? Например, допустим, у меня есть это деревоСоздать текстовый файл в нескольких каталогах - Python

example 
    --- folder1 
    --- folder2 
    --- folder3 

Как бы поместить foo.txt в каждую папку? Я пробовал этот код, но он не работал.

import os 

for root, dirs, files in os.walk("/", topdown=False): 
    for name in dirs: 
     f = open(name + '/file.txt', 'w') 
     f.write('ex') 
+0

Не профессионал python, но я думаю, вам нужно сначала закрыть файл, который вы открыли, прежде чем сможете открыть что-то новое. Здесь используется инструкция with, поскольку она обрабатывает ее для вас. – Nebelhom

+0

Нет. Все еще не сработало. 'f.close()' –

ответ

0

Вы должны join части пути вместе, в том числе root части (здесь /)

import os 

for root, dirs, files in os.walk("/", topdown=False): 
    for name in dirs: 
     with open(os.path.join(root,name,'file.txt'), 'w') as f: 
      f.write('ex') 

стороне:

  1. если вы не запустить этот код, как root вы» Вы получите исключение в защищенных каталогах, и оно остановится. Возможно, начните немного ниже, чем / (например, ваш домашний каталог) или поймайте записи, чтобы иметь возможность продолжить.
  2. этот код «опасно», потому что это создаст файл в всех каталогов (вы должны запустить его как корень, чтобы сделать это)
  3. использовать with блок, поэтому файл автоматически закрывается при выходе из блока
+0

Не работает. В моих папках есть пробелы. Это что-то меняет? –

+0

nope. Не работает как? вы получили исключение? ничего? –

+0

Он запустил файл, и я ничего не увидел на экране. –

Смежные вопросы