2017-02-15 15 views
1

私のデータは以下のように整理されています: 私は30のフォルダを持っています。それぞれに3つのサブフォルダがあります。それぞれに1つのファイル。pythonでファイルにリストを書き込む方法

私は、このフォルダのサブフォルダ1にあるファイルへのパスをフォルダ1にあるテキストファイル1に書き込むスクリプトを書きたいと思います。他のすべてのフォルダについても同様です。

問題は、各テキストファイル、第三のファイル(サブフォルダ3内のファイル)ではなく、サブフォルダ1内のファイルに、スクリプトが唯一の書き込みということです、2、3

これは私が試したものです。

import glob 
import os 

gotofolders = '/path/to/folderslocation/' 
foldersname = open('/path/to/foldersname.txt').read().split() 

for folders in foldersname: 
    foldersdirectory = os.path.join(gotofolders,foldersname) 
    filepaths = glob.glob(os.path.join(foldersdirectory)+'*subfolders/*files') 
    for filepath in filepaths: 
     savethepaths = os.path.join(foldersdirectory)+'files_path_in_that_folder.txt' 
     with open (savethepaths,'w') as f: 
      f.write(filepath+'\n') 

「files_path_in_that_folder.txt」には、3つの要素すべてではなく、「ファイルパス」リストの3番目の要素があります。

ありがとうございます!

答えて

1

さて、私はそれを理解しました。私は追加する必要がありました:これは動作するはずです

with open (savethepaths,'w') as f: 
    f.writelines(list("%s\n" %filepath for filepath in filepaths)) 
1
import os 
def directory_into_file(_path, file_obj, depth): 
# depth is a string of asterisk, just for better printing. starts with empty string 
file_obj.write(depth + _path + '\n') 
if(os.path.isdir(_path)): 
    file_list = os.listdir(_path) 
    os.chdir(_path) 
    for file in file_list: 
     directory_into_file(file, file_obj, depth+'*') 


    os.chdir("..") 

。 _path - ディレクトリのパスは、 file_obj - 機能と第一、 深さにオブジェクトファイルを送信 - 最初の呼び出しで、空の文字列

これがうまくいく希望を送信します。それを自分で試していない...

関連する問題