我有 txt 文件,我想学习如何在 Python 中解析 txt 文件。
txt文件:
April 2011
05.05.2013 8:30 20:50
(这里我可以有不同的数据)
如何解析此文件并将所有数据保存在单独的变量中?
示例输出:
month = "April 2011"
mydate = "05.05.2013"
time_start = "8:30"
time_stop = "20:50"
我有 txt 文件,我想学习如何在 Python 中解析 txt 文件。
txt文件:
April 2011
05.05.2013 8:30 20:50
(这里我可以有不同的数据)
如何解析此文件并将所有数据保存在单独的变量中?
示例输出:
month = "April 2011"
mydate = "05.05.2013"
time_start = "8:30"
time_stop = "20:50"
这里的关键是首先分析您的输入文件格式以及您想要的内容。让我们考虑您的输入数据:
April 2011
05.05.2013 8:30 20:50
我们有什么在这里?
第一行用空格隔开月份和年份。如果您想将“2011 年 4 月”作为单独的 Python 标签(变量)一起使用,您可以使用readlines()方法读取整个文件,列表的第一项将是“2011 年 4 月”。
下一行,我们有日期和两个时间“字段”,每个字段都用空格分隔。根据您的输出要求,您希望这些中的每一个都位于单独的 Python 标签(变量)中。所以,仅仅阅读第二行是不够的。您必须将上面的每个“字段”分开。该split()
方法将在这里被证明是有用的。这是一个例子:
>>> s = '05.05.2013 8:30 20:50'
>>> s.split()
['05.05.2013', '8:30', '20:50']
如您所见,现在您将字段分隔为列表项。您现在可以轻松地将它们分配给单独的标签(或变量)。
根据您拥有的其他数据,您应该尝试并尝试类似的方法,首先分析如何从文件的每一行获取所需的数据。
文件a.txt;
April 2011
05.05.2013 8:30 20:50
May 2011
08.05.2013 8:32 21:51
June 2011
05.06.2013 9:30 23:50
September 2011
05.09.2013 18:30 20:50
蟒蛇代码;
import itertools
my_list = list()
with open('a.txt') as f:
for line1,line2 in itertools.izip_longest(*[f]*2):
mydate, time_start, time_stop = line2.split()
my_list.append({
'month':line1.strip(),
'mydate': mydate,
'time_start': time_start,
'time_stop': time_stop,
})
print(my_list)
with open('file') as f:
tmp = f.read()
tmp2 = f.split('\n')
month = tmp2[0]
tmp = tmp2[1].split(' ')
mydata = tmp[0]
time_start = tmp[1]
time_stop = tmp[2]
with open("Input.txt") as inputFile:
lines = [line for line in inputFile]
month, mydate, time_start, time_stop = [lines[0].strip()] + lines[1].strip().split()
print month, mydate, time_start, time_stop
输出
April 2011 05.05.2013 8:30 20:50