![Pythonでテキストファイルに数字を保存する方法は? [閉鎖]](https://linux33.com/image/140423/Python%E3%81%A7%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E6%95%B0%E5%AD%97%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
「width:」という行の数字を抽出する必要があるテキストファイルがあります。例: width: 3432
今私は努力しています:
import re
file = open('abc.txt', 'r')
lines = file.readlines()
WIDTH=lines[10]
numbers = re.findall(r"[-+]?\d*\.\d+|\d+", WIDTH)
print(numbers)
['3432']を返します。 3432を取得するには、Pythonでint変数としてどのように保存できますか?
答え1
努力awk
&tr
awk -F"[][]" '{print $2}' file
または
grep
grep -Po "(?<=\[).[0-9].*?(?=\])" file
または
存在するpython
#!/bin/python
import re
str = open('file.txt', 'r').read()
m = re.search(r"\[([A-Za-z0-9_]+)\]", str)
print m.group(1)
答え2
実行したい操作の説明に基づいて、これに正規表現を使用する必要はありません。 Pythonを使用str.startswith
して興味のない行をフィルタリングし、メソッドを使用してstr.split
興味のある部分を取得し、その値をコンストラクタint()
に渡して文字列を整数に変換できます。
for line in open('abc.txt').readlines():
if line.startswith('width:'):
number = int(line.split()[-1])
print(number)