2017-10-05 10 views
1

にそれらのいくつかを書いのPython 3.6:os.listdir内のファイルをループ()と私はいくつかのファイルをループしようとし、別の.txtに.txtのもののファイル名を書き込んだテキストドキュメント

1つのファイルの名前を見つけて書き込んだ後にコードの部分が停止します。

どうすれば残りの名前を書くことができますか?

あなたは自分のオープン機能「追加」のために(「」滞在の2番目の引数として「A +」を置く「追加」モードで

import os 

os.chdir('/users/user/desktop/directory/sub_directory') 

for f in os.listdir(): 
    file_name, file_ext = os.path.splitext(f) 
    if file_ext == '.txt': 
     with open('file_test.txt', 'a+') as ft: 
      ft.write(file_name) 

を先のファイルを開く必要があり

import os 

os.chdir('/users/user/desktop/directory/sub_directory') 

for f in os.listdir(): 
    file_name, file_ext = os.path.splitext(f) 
    if file_ext == '.txt': 
     with open('file_test.txt', 'r+') as ft: 
      ft.write(file_name) 

答えて

0

と " + "は"存在しなければ作成する ")。 書き込み機能にセパレータ(「\ n」など)を追加して、より読みやすい結果を表示することをお勧めします。

+0

ヘルプリンク:https://stackoverflow.com/questions/13248020/whats-the-difference-between-r-and-a-when-open-file-in-python – PRMoureu

+0

素晴らしい!ありがとうございました.. –

+0

実際には、前に一度ファイルを開く必要があります(ファイルを開くことはできません) –

0

ループをはるかに効率的に開く前にファイルを一度開くだけです。ディレクトリを変更するよりもos.listdir()にパスを渡すことが、より良い:

import os 

with open('file_test.txt', 'w') as ft: 
    for f in os.listdir('/users/user/desktop/directory/sub_directory'): 
     file_name, file_ext = os.path.splitext(f) 
     if file_ext == '.txt': 
      ft.write(file_name) 

そして最後に、あなたはディレクトリ内のすべての「.TXT」ファイルをしたい場合は、glob.glob is your friend ...

0

は、Windows上にある場合は、ディレクトリのパスを指定するときに\\を使用する必要があります。追加モードでファイルに書き込みます。 See image

希望すると助かります!

関連する問題