Apa*_*che 1 python file-io strip
这是我以前的问题的延续(如果你好奇,请检查它们).
我已经可以看到隧道尽头的灯光,但我有一个最后的问题.
出于某种原因,每一行都以TAB字符开头.
如何忽略第一个字符(在我的情况下为"tab"(\ t))?
filename = "terem.txt"
OraRend = collections.namedtuple('OraRend', 'Nap, OraKezdese, OraBefejezese, Azonosito, Terem, OraNeve, Emelet')
csv.list_dialects()
for line in csv.reader(open(filename, "rb"), delimiter='\t', lineterminator='\t\t', doublequote=False, skipinitialspace=True):
print line
orar = OraRend._make(line) # Here comes the trouble!
Run Code Online (Sandbox Code Playgroud)
文本文件:
http://pastebin.com/UYg4P4J1
(无法在此处将所有选项卡粘贴到此处.)
我找到了lstrip,strip和其他方法,所有这些方法都会占用所有字符,因此元组的填充会失败.
小智 5
你可以做的line = line[1:]只是剥离的第一个字符.但是如果你这样做,你应该添加一个断言,第一个字符确实是一个标签,以避免在没有前导标签的情况下修改数据.
有一个更容易的替代方案,也可以处理其他几个案例,并且如果要删除的东西不存在则不会破坏.你可以删除所有前导和尾随空格line = line.strip().或者,用于仅去除.lstrip()前导空格,'\t'如果要将其他空格留在原位并只删除制表符,则将其作为参数添加到任一方法调用中.