1

興味深い質問があります。次を使用して、ファイル内の空白を分割します。

words = []
with open(fname, 'r') as f:
  words = f.read().split()

その後、ファイル内の一部の文字列を別の単語に置き換え、すべてをwordsリストに格納しました。ただし、すべてをリストにまとめたので、すべての空白を残したまま、コンテンツを同じファイルに書き戻したいと思います。また、元の単語があった場所に、置き換えたすべての単語を配置したいと考えています。もしそうなら、これは可能でしょうか?もしそうなら、誰かが私を正しい方向に向けることができますか? ありがとう!

4

2 に答える 2

1

が必要re.splitで、空白を保持するグループを作成します。

In [3]: re.split("(\s+)", "this is a test! Hello world.")
Out[3]: ['this', ' ', 'is', ' ', 'a', ' ', 'test!', ' ', 'Hello', ' ', 'world.']

ドキュメントに改行が含まれている場合、これにより改行が保持されることに注意してください。

于 2013-10-20T02:23:50.073 に答える
0
with open(fname, 'w'+) as fh: 
    fh.write(' '.join(words))

wordsリストはそれらを同じ順序で維持するため、順序を維持する必要があります。


編集:以下は、フォームのネストされたリストを作成しlist[0] = ['Hello', 'there!']ます。これは、質問で言及した文字列を変更するコードを更新する必要があることを意味します。

with open(infile, 'r') as fh:
    input = fh.read().split('\n')

lines = []
for line in input:
    lines.append(line.split(' '))

ファイルに書き戻すには、次のようなもので十分です。

with open(outfile, 'w+') as fh:
    for line in lines:
        fh.write(' '.join(line) + '\n')
于 2013-10-20T02:25:27.683 に答える