我有文本文件employee.txt,我将其插入到SQL表中,但是我得到的第一行与标头相同,后跟我的表值。我对python很陌生。如何删除表中的第一行是标题。
inpfile=open('C:/Users/chari/Documents/employee.txt','r')
while 1:
line=inpfile.readline()
if line=='':
break
serial_no,first_name,last_name,age,sex,city=line.split()
stmt = ("""insert into employee(serial_no, first_name,last_name,age,sex,city)""" +"values"
+str((serial_no,first_name,last_name,age,sex,city)))
cursor.execute(stmt)
答案 0 :(得分:0)
这可能会有所帮助。使用with
读取文件,然后使用next()
跳过第一行。
例如:
with open('C:/Users/chari/Documents/employee.txt') as infile:
next(infile) #Skip first line.
for line in infile:
serial_no,first_name,last_name,age,sex,city=line.strip().split()
stmt = ("""insert into employee(serial_no, first_name,last_name,age,sex,city)""" +"values"
+str((serial_no,first_name,last_name,age,sex,city)))
cursor.execute(stmt)
答案 1 :(得分:0)
您可以使用for循环遍历文件的每一行,但是在文件上调用next()将跳过第一个,而for循环将从第二个继续:
with open('file.txt') as f:
f = iter(f)
first_line = next(f)
for line in f:
# .... do stuff with each line...
答案 2 :(得分:0)
您可以执行类似 this 的操作:
with open('C:/Users/chari/Documents/employee.txt') as f:
next(f)
for line in f:
serial_no,first_name,last_name,age,sex,city=line.strip().split()
stmt = ("""insert into employee(serial_no, first_name,last_name,age,sex,city)""" +"values"+str((serial_no,first_name,last_name,age,sex,city)))
cursor.execute(stmt)
如果您需要第一行用于其他目的,那么打开文件后可以执行 this 之类的操作
first_line = next(f)
或者您可以通过这种方式打开文件,将整个文件存储到变量中。此解决方案可用于读取任何行,因此对我来说感觉更好。但是如果您使用的是非常大的文件,那将会很麻烦:
f = open('C:/Users/chari/Documents/employee.txt','r')
lines = f.readlines()[1:]
f.close()