私は以下のコードを書きました: その出力データ型は整数です。これらの整数をリストに入れたいです。私はpythonが初めてです。それを行う方法を提案してください。
lineNo = 0
css = open("/Users/john/Work/html/Ribbon/header.css")
for line in css.readlines():
lineNo = lineNo + 1
if "width" in line:
print(lineNo)
リスト内包表記でこれを行うことができます。この場合enumerate
、から始まる各行の行番号を示します。ファイルのようなものを反復して各行を通過する1
ため、必要はありません。.readlines()
[line_no for line_no, line in enumerate(css,1) if "width" in line]
元のコードを使用すると、2 つの新しい行を追加するだけで済みます。
lineNo = 0
css = open("/Users/john/Work/html/Ribbon/header.css")
myList = [] # create an empty list
for line in css.readlines():
lineNo = lineNo + 1
if "width" in line:
print(lineNo)
myList.append(lineNo) # add your item to the list
Python に慣れてきたら、元のアプローチの代わりに行数を自動的に取得するために列挙型と組み合わせてリスト内包表記を検討することができます。これらの構成の使用については、@jamylak のソリューションを参照してください。
それまでの間、ここではリストの非公式な紹介とリストに関するPythonドキュメントを示します。
lineNo = []
css = open("/path/to/stylesheet.css")
for i,line in enumerate(css.readlines(), start=1):
if "width" in line:
print (i, line)
lineNo.append(i)
print (lineNo)
def extractWidth(line):
return line # your code here
def loadWidths(path):
with open(path) as f:
return [extractWidth(line) for line in f if ("width in line")]
loadWidths("/Users/john/Work/html/Ribbon/header.css")