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

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

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

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

Q&A

2回答

456閲覧

python3のファイルIOの中でのcountの増やし方を知りたい。

nekodoro

総合スコア2

Python

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

0グッド

0クリップ

投稿2020/07/08 05:33

編集2020/07/08 06:19

phthonのファイルIOの中でcountが実行するたびに1,2と増えていくようなコードを作りたいです。

f=open("user/count.txt","r")
line=f.readline()
f.close()
count=int(line)
print(count)
の状態で出力すると何回やっても0と出力されて
これをはじめは0、次は1と増やしたい。
readlinesでやったところこのようなエラーが発生した。

どのようにcountの値を変動させればいいか教えてください。

発生している問題・エラーメッセージ

Running python on server..readyState: 4, responseText: Traceback (most recent call last): File "p11.py", line 4, in count=int(line) TypeError: int() argument must be a string, a bytes-like object or a number, not 'list' , status: 500, statusText: Internal Server Error,

該当のソースコード

phthon3

f=open("user/count.txt","r")
line=f.readlines()
f.close()
count=int(line)
print(count)

試したこと

for分などを用いて表したりしたが、逆に分からなくなってしまった
count=0、count=count+1を入れて以前にやってみたのですが、
1のまま固定されて値が増加していかなかった。

補足情報(FW/ツールのバージョンなど)

・何回やってもというのはこのコードはもちろんのこと他のIf文for文を使って行ったのですがエラーが発生してしまったのでできた部分のをもとの質問文に載せました。
・これというのはおそらくですが間違えました。すみません
・このファイルの行数を出力する際に最初は当然何も書いていないので0 そこから次に実行した回数によって数字が1ずつ増える出力を作りたいです printに数字が出力される。
(初めに実行したら1、2回実行したら1になるような実行結果を作りたいです)
初めて質問するので優しく教えてもらえると幸いです。

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

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

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

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

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

can110

2020/07/08 05:43

解決したい問題がよくわかりません。問題は具体的、詳細に記載ください。 ・「何回やっても」とは何をおこなう(おこなった)のでしょうか? ・「これをはじめは0、次は1と増やしたい」の「これ」とは何を指すのでしょうか? ・(なにかを)何回かやった場合、そのたびにどのような結果になるべきでしょうか? (何かがprintされ、count.txtの内容がどうなるか、など)
nekodoro

2020/07/08 05:57

すみません。。 上から順に応えていきます。 ・何回やってもというのはこのコードはもちろんのこと他のIf文for文を使って行ったのですがエラーが発生してしまったのでできた部分のをもとの質問文に載せました。 ・これというのはおそらくですが間違えました。すみません ・このファイルの行数を出力する際に最初は当然何も書いていないので0 そこから次に実行した回数によって数字が1ずつ増える出力を作りたいです printが数字が出力される。 (初めに実行したら1、2回実行したら1になるような実行結果を作りたいです)
can110

2020/07/08 06:42

結局、その「数字」って何を表しているのでしょうか?(count.txtの行数?)
nekodoro

2020/07/08 06:43

その通りです。
can110

2020/07/08 06:48

では、そのように質問本文を修正ください。 次に「countが(このプログラムを?ですかね?)実行するたびに1,2と増えていくようなコード」と記載されていますが > (初めに実行したら1、2回実行したら1になるような実行結果を作りたいです) と矛盾しているような気がするのですが、どちらが正しいのでしょうか?
guest

回答2

0

行数がほしいなら、count=len(line)でどうですか。

4行に対して、4と出ます。1と出るのはなにか間違えているのではないでしょうか。

python3

1import io 2txt = """a 3b 4c 5d 6""" 7 8f = io.StringIO(txt) 9lines = f.readlines() 10f.close() 11count = len(lines) 12print(count) 13# 4

投稿2020/07/08 06:17

編集2020/07/08 06:37
jeanbiego

総合スコア3966

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

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

nekodoro

2020/07/08 06:21

それだと先ほど付け加えたのですが、出力が1のまま変わらないので困っています。 ごめんなさい。
jeanbiego

2020/07/08 06:41

コード追記しました
nekodoro

2020/07/08 06:44

ありがとうございます。一回やってみます
guest

0

たんに1づつ増やしたいと言うなら、
count=count+1
とすればいいです

まあ、一番最初に
count=0
をおいておく必要がありますね

#なにをしようとしてるのかいまいちわかってませんが

投稿2020/07/08 06:03

y_waiwai

総合スコア87774

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

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

nekodoro

2020/07/08 06:16

ファイルの中の行数を計算していくことをしたいです。 最初は何もないので0が出力されます。 そのあとからまた同じように実行すると 1が出力され回数を重ねて2、3ト出力されるようにしたいです。 count=0、count=count+1を入れて以前にやってみたのですが、 1のまま固定されてしまっていました
y_waiwai

2020/07/08 06:25

line=f.readlines() で読み込むと、ファイルの全行が一括して読み込まれてしまいます。 そのうえで行数を得たいというなら、別回答の count=len(line) となってしまいますが。 1行づつ読み込んでそれをカウントしたいと言うなら、 readlinesメソッドではなくて、1行づつ読み込むメソッドを使用しましょう。 まあ、その場合はファイルが尽きるまでループさせる必要がありますが。
nekodoro

2020/07/08 06:45

ちょっと考えてみます!ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問