0

3行のテキストファイルがあります。この 3 行を L1、L2、L3 と読み、L1、L2、L3 の文字を n1、n2、n3 と数えたいと思います。私は次のように試しました:

     f=open(sys.argv[1],'r')
     L1=f.readline()   
     L2=f.readline()   
     L3=f.readline()  
     if L1[-1]=='\n': L1=L1[:len(L1)-1] 
     if L2[-1]=='\n': L2=L2[:len(L2)-1] 
     if L3[-1]=='\n': L3=L3[:len(L3)-1] 
     n1=len(L1); n2=len(L2); n3=len(L3) 
     print L1, n1, L2, n2, L3, n3

上記のスクリプトは正常に動作しています。しかし、L1、L2、L3 を取得するためのより良い/簡単な方法があるかどうかを知りたいと思っていました。前もって感謝します!

4

5 に答える 5

1

これはどう:

with open(sys.argv[1]) as f:
  L1, L2, L3 = (line.rstrip() for line in f.readlines()[:3])

しかし、実際にはリストを使用する必要があります...

于 2013-09-27T06:38:12.310 に答える
0

私の意見では、それらを配列に入れてみるのが最善の方法です。私はPythonを使用していませんが、それはC ++で悪いことです

于 2013-09-27T06:15:03.237 に答える
0

承知しました..

lines = []
with open(sys.argv[1], "r") as file:
    for line in file.readlines():
        if line[-1] == "\n":
            line = line[:-1]
        lines.append(line)

この方法では、ファイルに何行あるかは関係ありません。プログラムは最後まで実行されます

于 2013-09-27T06:15:29.093 に答える