我正在尝试从具有开始和结束日期范围的文件中获取字符串,如下所示:
"Date Range = January 1, 2001 to December 24, 2008"
我必须选择此日期范围(2001年1月1日至2008年12月24日)并将其拆分并将其分配到2个不同的变量中。我可以获取日期范围并拆分它们,但在分配时我收到错误。
file_path = open("C:\\Users\\vinnu\\Desktop\\ARF_LS00006493_339313_Tremont.txt")
content = file_path.read()
#find and pick the date range
size = len(content)
start =0
while start < size:
start = content.find("Date Range: ",start)
start = start if start != -1 else size
#fetch only till the end of line
end = content.find("\n", start)
end = end if end != -1 else size
date_range = (content[start+12:end])
start = end + 1
#printing test
print (date_range)
#split
date1,date2= date_range.split(' to ')
print (date1)
print (date2)
我得到以下输出并出现错误:
January 1, 2001 to December 24, 2008
January 1, 2001
December 24, 2008
Traceback (most recent call last):
File "C:/Users/vinnu/Desktop/split_eg3.py", line 19, in <module>
date1,date2= date_range.split(' to ')
ValueError: not enough values to unpack (expected 2, got 1)
答案 0 :(得分:0)
我不会为此使用循环,您可以在整个过程中使用split:
Content-Type
然后在阅读文件时使用该功能:
content_type
答案 1 :(得分:0)
我会尝试解释你得到的输出
第一次在循环中,一切都很好......
January 1, 2001 to December 24, 2008
January 1, 2001
December 24, 2008
现在你再次进入循环(很可能你在文件末尾有一些\ n \ n)
start = content.find("Date Range: ",start)
start = start if start != -1 else size
开始应该&#34;尺寸&#34;现在
date_range = (content[start+12:end]) # start==size remember? => ""
start = end + 1
#printing test
print (date_range) #you print an empty string here!
打印空行后
date1,date2= date_range.split(' to ') #splitting the empty string
并爆炸:
Traceback (most recent call last):
File "C:/Users/vinnu/Desktop/split_eg3.py", line 19, in <module>
date1,date2= date_range.split(' to ')
ValueError: not enough values to unpack (expected 2, got 1)