1

「記事」の内容をテキストファイルに書き込んでいます。

ソースファイル:

lol hi
lol hello
lol text
lol test

Python:

for line in all_lines:
    if line.startswith('lol '):
        mystring = line.replace('lol ', '').lower().rstrip()

article = 'this is my saved file\n' + mystring + '\nthe end'

これは、txtファイルに保存されるものです。

this is my saved file
test
the end

これは私がtxtファイルに保存したいものです:

this is the saved file
hi
hello
test
text
the end
4

3 に答える 3

5

毎回文字列を置き換えています。各行の結果を保存してlolから、それらすべてを次の場所に追加する必要がありますmystring

mystring = []
for line in all_lines:
    if line.startswith('lol '):
        mystring.append(line.replace('lol ', '', 1).lower().rstrip() + '\n')

article = 'this is my saved file\n'+''.join(mystring)+'\nthe end'

上記のコードでmystringは、リストに変換し、joinメソッドを使用して最後に文字列に変換しました。\n出力にその文字が必要なため、各行に改行()文字を追加した(そしてrstrip()削除した)ことに注意してください。または、次のように書くこともできます。

line.replace('lol ', '', 1).lower().rstrip(' ')

これによりrstrip()、スペースのみが削除され、他のすべての形式の空白は削除されません。


編集:別のアプローチは次のように書くことです:

mystring.append(line.replace('lol ', '').lower().rstrip())

と:

article = 'this is my saved file\n'+'\n'.join(mystring)+'\nthe end'
于 2012-07-13T15:12:12.963 に答える
0

...またはワンライナーとして、

mystring = ''.join(line[4:].lower() for line in all_lines if line.startswith('lol '))
于 2012-07-13T15:16:26.110 に答える
0

この異なるアプローチを取ることができます:

with open('test.txt') as fin, open('out.txt', 'w') as fout:
    fout.write('this is my saved file\n')
    for line in fin:
        if line.startswith('lol '):
            fout.write(line.replace('lol ', '').lower())
    fout.write('the end')
于 2012-07-13T15:16:36.773 に答える