このプロセスをPythonで動作させるか、まったく動作させる方法を見つけようとします。基本的に、私は本当に長いテキストファイルをラインに分割しています。 x行にはすべて、主に大文字の行があります。大まかに、その特定のセクションのタイトルにする必要があります。理想的には、タイトルとそのすべてをファイルの名前としてタイトルを使用してテキストファイルに入れたいと思っています。この場合、多くのタイトルがそこにあるので、これは3039年に起こるはずです。 これまでの私のプロセスは次のとおりです。テキストファイルを読み込む変数を作成して、大文字であるかどうかを教えてくれました。その後範囲が変更されるたびに範囲の各セットのすべての行を新しいファイルに書き出します。Python 3.6
def mostly_uppercase(text):
threshold = 0.7
isupper_bools = [character.isupper() for character in text]
isupper_ints = [int(val) for val in isupper_bools]
try:
upper_percentage = np.mean(isupper_ints)
except:
return False
if upper_percentage >= threshold:
return True
else:
return False
、私はインデックスを作成することができるように、私はカウンターを作った後、私はそれを組み合わせる:
counter = 0
headline_indices = []
for line in page_text:
if mostly_uppercase(line):
print(line)
headline_indices.append(counter)
counter+=1
headlines_with_articles = []
headline_indices_expanded = [0] + headline_indices + [len(page_text)-1]
for first, second in list(zip(headline_indices_expanded, headline_indices_expanded[1:])):
article_text = (page_text[first:second])
headlines_with_articles.append(article_text)
ことのすべては、私の知る限り正常に動作しているようです。しかし、私がファイルにしたい部分を印刷しようとすると、テキスト全体をすべてのtxtファイルに出力するだけです。
for i in range(100):
out_pathname = '/sharedfolder/temp_directory/' + 'new_file_' + str(i) + '.txt'
with open(out_pathname, 'w') as fo:
fo.write(articles_filtered[2])
編集:これは私にそこに私を得た。さて、最初の行で各ファイルに名前を付ける方法が必要です。単一の入力ファイルを処理する
for i,text in enumerate(articles_filtered):
open('/sharedfolder/temp_directory' + str(i + 1) + '.txt', 'w').write(str(text))