-4

金曜日はお世話になりました。たぶん私の簡単な質問で申し訳ありません。私はPythonの初心者なので、より専門的な人にとっては簡単な質問に直面することもありますが、自分自身を改善しようとしています.

以前の質問をより詳細に説明します。私はいくつかのテキスト ファイルを持っています。あなたの指導により、これらのテキスト ファイルの行数を数えることができました。この新しいファイルの各行に入力ファイルの名前とスペースを含む行数があり、このファイルの最後の行に行番号の合計が含まれる出力として新しいテキストファイルを作成したいと思います. たとえば、point1.txt、point2.txt、point3.txt などのファイルがあります。出力ファイル wld は次のようになります。

point1 144798 point2 100000 point3 258627 合計 503425

私が持っているコードは次のとおりです。

import os folder = 'E:/MLS_HFT/TEST/Stuttgart_2009_pointclouds/'

def total_lines():

    count_line = 0

    for filename in os.listdir(folder):
        infilename = os.path.join(folder,filename)
        if not os.path.isfile(infilename): continue
        infile= open(infilename, 'r')

        for lines in infile:
            i+=1

        outfile = ["%s " %i]
        return i
        outfile = ["%s " %i]
        outfile.write("\n".join(output))
        outfile.close()
        return outfile

        total_lines (infile,i)
        count_line = count_line + i

        output = ["%s  %s" %(item.strip() ,count_line) for item in outfile]
    outfile.write("\n".join(output))

ご指導を賜りますようお願い申し上げます。

4

4 に答える 4

2

各ファイルの行数の合計数のみが必要な場合:

>>> import fileinput
>>> i = 0 # default value 
>>> for line in fileinput.input(files=('test.txt', 'test2.txt')):
        i += 1


>>> i
20

これは次のように簡略化できます。

sum(1 for line in fileinput.input(files=('test.txt', 'test2.txt'))

単一のファイルが必要で、それらも追加する必要がある場合は、関数でこれを使用してください。

with open('test.txt') as f:
    sum(1 for line in f)
于 2013-04-19T10:27:51.680 に答える
0
def Total_Lines():    
    Open_File = open(File_Name,'U').read()
    Last_Line = Open_File.count('\n')
    print Last_Line

ファイルの行数を数えるには

複数のファイル

import glob

def Total_Lines(path):
    Count_Line = 0
    a = glob.glob(path+'\*')
    for i in a:
        print i
        Open_File = open(i,'U').read()
        Last_Line = Open_File.count('\n')
        print Last_Line
        Count_Line = Count_Line+Last_Line
    print Count_Line

Total_Lines(r"F:\stack")
于 2013-04-19T10:27:00.283 に答える