从 python 中的 txt 文件中提取不同的数据
Extracting different Data from a txt file in python
我一直在尝试从 txt 文件中提取数据
这是文本文件:
PARTIALRUN,0
time,2020-07-31 12:21:44
update,5.8.6.32
build,2319
comments,testing
BaseDir,\Testing\Python20_07_31_12_21_44
我想从文本文件中提取一些信息来获取这些信息
WeekNumber= 31
5.8.6.32NUMBER2319
我是这样尝试的:
test_array =[]
with open ('file_location', 'rt') as testfile:
for line in testfile:
firsthalf, secondhalf =(
item.strip() for item in line.split(',', 1))
date = tuple(map(int, secondhalf.split('-')))
datetime.date(date).isocalendar()[1]
weekNumber= "Week Number: " + str(datetime.date(date).isocalendar()[1])
print(workWeek)
buildnumber = secondhalf[2] + "NUMBER" + secondhalf[3]
print(buildnumber)
我收到的错误:
> buildnumber = secondhalf[2] + "NUMBER" + secondhalf[3]
>IndexError: string index out of range
和
> datetime.date(date).isocalendar()[1]
>TypeError: an integer is required (got type tuple)
我是 python 的新手,因此非常感谢任何帮助
您可以使用 re
来获得想要的数字。对于第二个错误,使用星号 *
解压元组:
import re
from datetime import date
txt = r'''PARTIALRUN,0
time,2020-07-31 12:21:44
update,5.8.6.32
build,2319
comments,testing
BaseDir,\Testing\Python20_07_31_12_21_44'''
t = re.search(r'time,([^\s]+)', txt).group(1)
t = tuple(map(int, t.split('-')))
u = re.search(r'update,(.*)', txt).group(1)
b = re.search(r'build,(.*)', txt).group(1)
print('WeekNumber= {}'.format(date(*t).isocalendar()[1]))
print('{}NUMBER{}'.format(u, b))
打印:
WeekNumber= 31
5.8.6.32NUMBER2319
编辑:(从文件中读取):
import re
from datetime import date
with open('file_location', 'r') as f_in:
txt = f_in.read()
t = re.search(r'time,([^\s]+)', txt).group(1)
t = tuple(map(int, t.split('-')))
u = re.search(r'update,(.*)', txt).group(1)
b = re.search(r'build,(.*)', txt).group(1)
print('WeekNumber= {}'.format(date(*t).isocalendar()[1]))
print('{}NUMBER{}'.format(u, b))
我一直在尝试从 txt 文件中提取数据
这是文本文件:
PARTIALRUN,0
time,2020-07-31 12:21:44
update,5.8.6.32
build,2319
comments,testing
BaseDir,\Testing\Python20_07_31_12_21_44
我想从文本文件中提取一些信息来获取这些信息
WeekNumber= 31
5.8.6.32NUMBER2319
我是这样尝试的:
test_array =[]
with open ('file_location', 'rt') as testfile:
for line in testfile:
firsthalf, secondhalf =(
item.strip() for item in line.split(',', 1))
date = tuple(map(int, secondhalf.split('-')))
datetime.date(date).isocalendar()[1]
weekNumber= "Week Number: " + str(datetime.date(date).isocalendar()[1])
print(workWeek)
buildnumber = secondhalf[2] + "NUMBER" + secondhalf[3]
print(buildnumber)
我收到的错误:
> buildnumber = secondhalf[2] + "NUMBER" + secondhalf[3]
>IndexError: string index out of range
和
> datetime.date(date).isocalendar()[1]
>TypeError: an integer is required (got type tuple)
我是 python 的新手,因此非常感谢任何帮助
您可以使用 re
来获得想要的数字。对于第二个错误,使用星号 *
解压元组:
import re
from datetime import date
txt = r'''PARTIALRUN,0
time,2020-07-31 12:21:44
update,5.8.6.32
build,2319
comments,testing
BaseDir,\Testing\Python20_07_31_12_21_44'''
t = re.search(r'time,([^\s]+)', txt).group(1)
t = tuple(map(int, t.split('-')))
u = re.search(r'update,(.*)', txt).group(1)
b = re.search(r'build,(.*)', txt).group(1)
print('WeekNumber= {}'.format(date(*t).isocalendar()[1]))
print('{}NUMBER{}'.format(u, b))
打印:
WeekNumber= 31
5.8.6.32NUMBER2319
编辑:(从文件中读取):
import re
from datetime import date
with open('file_location', 'r') as f_in:
txt = f_in.read()
t = re.search(r'time,([^\s]+)', txt).group(1)
t = tuple(map(int, t.split('-')))
u = re.search(r'update,(.*)', txt).group(1)
b = re.search(r'build,(.*)', txt).group(1)
print('WeekNumber= {}'.format(date(*t).isocalendar()[1]))
print('{}NUMBER{}'.format(u, b))