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

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

ただいまの
回答率

88.93%

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

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 185

nekodoro

score 2

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になるような実行結果を作りたいです)
初めて質問するので優しく教えてもらえると幸いです。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • can110

    2020/07/08 15:42

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

    キャンセル

  • nekodoro

    2020/07/08 15:43

    その通りです。

    キャンセル

  • can110

    2020/07/08 15:48

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

    キャンセル

回答 2

0

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/08 15:16

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

    キャンセル

  • 2020/07/08 15:25

    line=f.readlines()
    で読み込むと、ファイルの全行が一括して読み込まれてしまいます。
    そのうえで行数を得たいというなら、別回答の
    count=len(line)
    となってしまいますが。

    1行づつ読み込んでそれをカウントしたいと言うなら、
    readlinesメソッドではなくて、1行づつ読み込むメソッドを使用しましょう。
    まあ、その場合はファイルが尽きるまでループさせる必要がありますが。

    キャンセル

  • 2020/07/08 15:45

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

    キャンセル

0

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

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

import io
txt = """a
b
c
d
"""

f = io.StringIO(txt)
lines = f.readlines()
f.close()
count = len(lines)
print(count)
# 4

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/08 15:21

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

    キャンセル

  • 2020/07/08 15:41

    コード追記しました

    キャンセル

  • 2020/07/08 15:44

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

    キャンセル

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

  • ただいまの回答率 88.93%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る