现有文本文件如下:都是IP地址,想使用python 批量导入到mysql数据库.
218.61.30.195
61.161.255.125
221.203.162.178
218.60.142.66
61.161.214.237
60.18.250.166
原来使用delphi编写的,现在不想调试了,就是想每行读入,生成sql语句,然后插入到mysql数据库的表中.原来的delphi程序如下:
procedure TForm1.Button2Click(Sender: TObject);
var i: integer;
s,qs,qs1:String;
begin
if OpenDialog1.Execute then begin
memo1.Lines.Clear;
memo2.lines.clear;
memo1.Lines.loadfromfile(opendialog1.FileName);
end;
adoconnection1.Connected:=true;
qs:='insert into ips (ip,ipint,city,createtime) values ("';
for i := 0 to Memo1.Lines.Count-1 do
begin
s:=Memo1.Lines.Strings[i];
qs1:=qs+s;
qs1:=qs1+'",inet_aton("'+s+'"),null,now()); ';
Memo2.Lines.Add(qs1);
adoquery1.close();
adoquery1.sql.clear;
adoquery1.sql.add(qs1);
adoquery1.execsql;
end;
application.messagebox('批量添加IP地址成功!','提示',0+64);
end;
想在使用
f=open("c:\20160428_shoukong.txt",'r')
for eachline in f:
s='insert into ips (ip,ipint) values ('')'
print eachline,
f.close()
步骤我的理解是:
第一读入文件 并存入到
生成sql语句,
关闭读取的文件
关闭数据库连接.请各位大侠帮看一下
으아악
안녕하세요! 약간의 제안은, 이미 만들어진 텍스트 파일이 있다면 mysql에서
으아악"Load Data Infile" 명령을 사용하는 것이 더 효율적이라는 것입니다!
관련 링크: (1) http://blog.sina.com.cn/s/blog_97688f8e0101hgfx.html
사진 중 하나는 mysqldb를 가져오는 프로그램인데 문제가 없으며 테스트를 거쳤습니다.
두 번째 사진은 가져와야 하는 텍스트 파일입니다. 물론 IP 주소
세 번째 사진은 오류 메시지입니다. 사실 제 프로그램에 print sql_lines를 출력하는 문장이 있는데, 그 문장 중 하나를 mysql에 삽입하면 문제가 없는데 잘 모르겠습니다. 나타나는 곳
바쁜 시간에도 꼭 한 번 들러주세요