我有一个tab-delimited txt file
,其中的行由制表符分隔,行由换行符分隔。实际情况如下:
476502291\t\tLF3139812164\t\tTitle 1\tKids & Family\nGRAV_2011\t\tThe Full Picture\tIndependent\n [...etc...]
请注意,有时值由两个选项卡分隔,而不是一个。在
我需要将它插入到mysql表中,结果如下:
ID title genre
476502291 Title 1 Kids & Family
GRAV_2011 The Full Picture Independent
如何读取一个制表符分隔的txt文件并运行for
循环,以便使用MySQLdb将值插入到名为vendor
的表中?在
只要制表符仅用作文件中的分隔符,您就可以执行以下操作:
其思想是始终有两组选项卡,一组在ID和title之间,另一组在title和genre之间。通过在
\t+
(一个或多个选项卡)上使用re.split()
,您将得到一个长度为3的列表,其中包含您感兴趣的字段。在如果文件中有任何行与此格式不匹配,则应在元组解包之前添加一些额外的检查,可能是}行的内容。在
data = re.split(r'\t+', line)
和{编辑:此解决方案假设您没有空白字段,因此,如果一行只有一个ID和一个流派但没有标题是合法的,那么这将不起作用。如果你可以有一个标题,但没有ID或genre,只要在ID丢失时有前导标签,而在genre缺失时有尾随标签,它仍然可以工作。在
进口登记
连接到MySQLdb
打开(文件名)为f: 对于f行: id,标题,流派=重新分割(r'\t+',行) #执行INSERT语句
第1步。阅读
csv
模块。http://docs.python.org/library/csv.html。这是你想要的。在第二步。阅读上下文管理器,也。在
^{pr2}$这将确保正确关闭光标和文件。在
相关问题 更多 >
编程相关推荐