3

私はPythonを初めて使用し、サブフォルダー内の数学テキストファイルにアクセスするのに問題があります。

                    フォルダの階層

これは私がこれまでに書いたコードです:

import os, sys
for folder, sub_folders, files in os.walk(my_directory):
   for special_file in files:
      if special_file == 'math.txt'
         file_path = os.path.join(folder, special_file)
         with open(file_path, 'r+') as read_file
            counter += 1
            print('Reading math txt file' + str(counter))

            for line in read_file:
               print(line)

math.txtすべてのクラス、すべての学校、すべてのゾーン内のすべてのファイルの行を印刷することはできません。

すべてのファイルをマージするバージョンのスクリプトを作成する前に、一部のログファイルは非常に大きかった(合計> 16GB)。

4

1 に答える 1

4

これは私にとってはうまくいくようです。変更点は、@ jdi、@ MRAB、および私が示していたものだけでした-コロンが欠落していて、counter変数を初期化しています。Windowsを使用しているため、ディレクトリパスを正しく指定していることを確認することをお勧めします。

import os, sys

# Specify directory
# In your case, you may want something like the following
my_directory = 'C:/Users/<user_name>/Documents/ZoneA'

# Define the counter
counter = 1

# Start the loop
for folder, sub_folders, files in os.walk(my_directory):
  for special_file in files:
    if special_file == 'math.txt':
      file_path = os.path.join(folder, special_file)

      # Open and read
      with open(file_path, 'r+') as read_file:
        print('Reading math txt file ' + str(counter))

        # Print the file
        for line in read_file:
           print(line)

        # Increment the counter
        counter += 1
于 2012-08-16T23:25:44.117 に答える