はのはdoc.txt
が.rstrip( ' n')が機能しないのはなぜですか?
a
b
c
d
が含まれていると私は同じ値を得るのですか、なぜ私のコードは
f = open('doc.txt')
doc = f.read()
doc = doc.rstrip('\n')
print doc
であるとしましょうか?
はのはdoc.txt
が.rstrip( ' n')が機能しないのはなぜですか?
a
b
c
d
が含まれていると私は同じ値を得るのですか、なぜ私のコードは
f = open('doc.txt')
doc = f.read()
doc = doc.rstrip('\n')
print doc
であるとしましょうか?
str.rstrip()
は、改行の末尾にある改行を削除します。結局のところ、長い文字列が1つあります。
str.splitlines()
を使用して、ドキュメントを改行なしでに分割します。;あなたがしたい場合は、それを再度参加することができます
doclines = doc.splitlines()
doc_rejoined = ''.join(doclines)
が、今doc_rejoined
は、区切り文字なしで一緒に実行されているすべての行を持つことになります。
rstrip
文字列全体の末尾のスペースを削除します。個々の行で動作することを期待している場合は、文字列を最初にdoc.split('\n')
のような行を使用して分割する必要があります。
あなたは次のようになります1つの文字列に、文書全体を読んでいるので:あなたは、その文字列にrstrip('\n')
を行うと、唯一の右端の\n
は、他のすべては、手つかずのままに、削除されます
'a\nb\nc\nd\n'
、その文字列
'a\nb\nc\nd'
解決方法は、ファイルを複数の行に分割し、次にすべての行を右から削除することです。あるいは、すべての改行文字を何も無しに置き換えてください。s.replace('\n', '')
は、'abcd'
です。
代わりにこれを試してみてください:
with open('doc.txt') as f:
for line in f:
print line,
説明:
with
を使用しているファイルを開くために推奨される方法、for line in f
rstrip()
に電話する必要はありません1行ずつ印刷することをお勧めしますreplaceを使用し、 '\ n'の各インスタンスを ''に置き換えることを検討してください。これは、入力テキストのすべての改行文字を取り除きます。
または単に 'replace( '\ n'、 '')'。行の終わりは、行の終わりを除いては発生しません。 – user2357112
@ user2357112ベストアンサー。 – Deneb