質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

739閲覧

ファイルへ書き込んでから、読み込む際に文字列がつながってプリントされます。

Chibichan

総合スコア72

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/02 14:32

編集2020/07/02 14:46
def kysy(name): file=open(tiedoston_nimi,"w",encoding="utf-8") while(True): nimi=input("Anna tiedostoon tallennettava nimi (0 lopettaa): ")#名前入力 if(nimi=="0"):#ゼロで終了 break name=file.write(nimi)#ファイルに名前を書き込む file.close() return None def tulosta(data): #読み込む file=open(tiedoston_nimi,"r",encoding="utf-8") print("Tiedostoon"+tiedoston_nimi+"on tallennettu seuraavat nimet:") data=file.read()  print(data)#ファイルに書き込んだ名前を出していく(ここで入力した名前が続けてでます。) #理想は、 #あい #さちこ #れいこ #と出力してほしいのですが、「あいさちこれいこ」とでます。 file.close() return None def paaohjelma(): kysy(tiedoston_nimi) tulosta(tiedoston_nimi) print("Kiitos ohjelman käytöstä.") tiedoston_nimi=input("Anna tallennettavan tiedoston nimi: ") paaohjelma()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/07/02 14:37

このままではコードが読めません。質問を編集し、<code>ボタンを押し、出てきた’’’の枠の中にコードを貼り付けてください
guest

回答2

0

ベストアンサー

質問のコードで書き込まれたファイルを見ていただければわかりますが、一行にまとまっていて、改行されていません。書き込む時に改行コード\n を入れればファイルに1行ずつ名前が書き込まれます。

python

1def kysy(name): 2 file=open(tiedoston_nimi,"w",encoding="utf-8") 3 while(True): 4 nimi=input("Anna tiedostoon tallennettava nimi (0 lopettaa): ") 5 #名前入力 6 if(nimi=="0"):#ゼロで終了 7 break 8 name=file.write(nimi+"\n")#ファイルに名前を書き込む(改行コード追記) 9 file.close() 10 return None 11 12def tulosta(data): #読み込む 13 file=open(tiedoston_nimi,"r",encoding="utf-8") 14 print("Tiedostoon"+tiedoston_nimi+"on tallennettu seuraavat nimet:") 15 data=file.read() 16 data = data.strip() # 最後に改行が入るのを防止する。 17 print(data)#ファイルに書き込んだ名前を出していく(ここで入力した名前が続けてでます。) 18 19#理想は、 20#あい 21#さちこ 22#れいこ 23#と出力してほしいのですが、「あいさちこれいこ」とでます。 24 file.close() 25 return None 26 27def paaohjelma(): 28 kysy(tiedoston_nimi) 29 tulosta(tiedoston_nimi) 30 print("Kiitos ohjelman käytöstä.") 31 32tiedoston_nimi=input("Anna tallennettavan tiedoston nimi: ") 33paaohjelma()

投稿2020/07/02 15:03

編集2020/07/02 15:09
Penpen7

総合スコア698

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Chibichan

2020/07/02 15:59

ありがとうございます!できました…最後のPrint文の前の改行を省くにはどうしたらいいでしょうか?
Penpen7

2020/07/02 16:03 編集

print文とは、print("Kiitos ohjelman käytöstä.")のことでしょうか?
Chibichan

2020/07/02 16:41

そうです、こちらがprint("Kiitos ohjelman käytöstä.")最後の文章になります。 print("Kiitos ohjelman käytöstä.")の前の改行を削除したいのですが、どうしたらいいでしょうか? end=""を追加してみましたが、できませんでした。理想は、以下になります。 あいこ さちこ れいこ(今のままですと、れいこの後に空行がきます。) Kiitos ohjelman käytöstä. どうぞよろしくお願いいたします。
Penpen7

2020/07/02 16:56 編集

それは私のコードの中で、data = data.strip()で読み込んだ文字列から最後の行の改行コードを除去して、空行を入れないようにしてます。 data = data.strip()は実行したコードの中に入れましたか?私の投稿したコードをコピーして実行してみてください。 私の環境では以下のようになっています。 Anna tallennettavan tiedoston nimi: i Anna tiedostoon tallennettava nimi (0 lopettaa): あいこ Anna tiedostoon tallennettava nimi (0 lopettaa): さちこ Anna tiedostoon tallennettava nimi (0 lopettaa): れいこ Anna tiedostoon tallennettava nimi (0 lopettaa): 0 Tiedostoonion tallennettu seuraavat nimet: あいこ さちこ れいこ Kiitos ohjelman käytöstä. とあり空行はありません。 ついでに、print(data, end="")とすると、 Anna tallennettavan tiedoston nimi: i Anna tiedostoon tallennettava nimi (0 lopettaa): あいこ Anna tiedostoon tallennettava nimi (0 lopettaa): さちこ Anna tiedostoon tallennettava nimi (0 lopettaa): れいこ Anna tiedostoon tallennettava nimi (0 lopettaa): 0 Tiedostoonion tallennettu seuraavat nimet: あいこ さちこ れいこKiitos ohjelman käytöstä. となります。end=""の効果はつかめましたでしょうか? これは蛇足かもしれませんが。
Chibichan

2020/07/02 17:02

できました!ありがとうございます! Endの情報もありがとうございます!勉強になりました!
guest

0

kysy 内の file.write(nimi) に改行を付加してみてはどうですか?
writeメソッドは最後に自動で改行されるわけではないと思います。

py

1file.write(nimi + "\n")

投稿2020/07/02 15:03

coolwind0202

総合スコア708

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Chibichan

2020/07/02 15:59

ありがとうございます!できました…最後のPrintの前の改行を省くにはどうしたらいいでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問