<Button
Command="{x:Static DataGrid.SelectAllCommand}"
Focusable="false"
Style="{DynamicResource {ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}}"
Visibility="{Binding Path=HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.All}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
Width="{Binding Path=CellsPanelHorizontalOffset, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
每当我的程序运行时,都会出错。我不知道为什么。但每当我检查日期时间变量时,它包含这个['2013/12/10','19:48:25]这是正确的。但我无法使用datetime [1]访问第二个元素,它给出了索引超出范围的错误,但我可以访问datetime [0]。谁能告诉我我做错了什么?请帮忙,我很困惑,没有耐心。谢谢!
编辑:所以这是真正的代码
line = "2013/12/10@19:48:25"
datetime = line.split('@')
print datetime[1]
到目前为止,这就是我正在做的事情。在我弄清楚代码中的错误是什么错误之后,这就是为什么该程序现在看起来毫无意义。
答案 0 :(得分:0)
代码本身似乎是正确的,但您可以添加几个assert
以确保一切都按预期进行。
line = "2013/12/10@19:48:25"
assert "@" in line # check that "@" is present there
datetime = line.split('@')
assert len(datetime) == 2 # check that there are 2 elements
print datetime[1] # then it's safe to take the second element
顺便说一下,使用不同的名称代替datetime
是合理的,以避免因隐藏日期时间模块名称而导致的潜在问题。
答案 1 :(得分:0)
对于那些仍然在寻找答案的人或因为我收到错误而感到奇怪的人,这是因为日志文件的文件格式是UNIX文本文件格式。因此,在解析时,python解析器将与一些隐藏的特殊字符混淆。我在linux中使用'unix2dos'命令将日志文件从unix转换为dos后解决了这个问题。在此之后,我的解析器工作顺利。