Yeniden basıldı: Smart Demo
Bu makale 1542 kelime , Okumanız tavsiye edilir 4 dakika .
Bu makale, hızlı işlem sağlamak için MySQL veritabanına bağlanmak için Python kullanarak örnek olarak 17 txt metni ve 30.000'den fazla veri kullanır.
Uygulama senaryosu : Çalışırken, genellikle büyük miktarda verinin entegre edilmesi, tekilleştirilmesi ve belirli bir biçimde dışa aktarılması gereken durumlarla karşılaşırız. Çalıştırmak için Excel kullanıyorsanız, bu sadece zaman alıcı ve zahmetli olmakla kalmaz, aynı zamanda yanlıştır.Daha verimli bir çözüm var mı?
Bu makale, hızlı işlem sağlamak için MySQL veritabanına bağlanmak için Python kullanarak örnek olarak 17 txt metni ve 30.000'den fazla veri kullanır.
Diğerleri fazla mesai yapıyor, küçük Python asistanım bunu birkaç saniye içinde yapabilir!
Bu makale esas olarak aşağıdaki üç yönü içermektedir:
MySQL veritabanına veri yaz
Aşağıdaki şekilde gösterilen dosya bu makalenin veri kaynağıdır:
Bizim fikrimiz küçük bir program yazmak, onu bu klasöre atmak ve her bir txt dosyasındaki verileri otomatik olarak okumak ve veritabanına yazmak için çift tıklamaktır.
Bu kod, pymysql ve os olmak üzere iki kitaplık kullanır.
Ana kod aşağıda açıklanmıştır:
1. Herhangi bir klasördeki tüm dosya adlarını çaprazlayın
Program yazıldıktan sonra, onu bir exe programına paketlemek için pyinstaller kullanın ve çalıştırılacak klasörün altına yerleştirin.
Path = os.getcwd () komutuyla exe dosyasının bulunduğu dizini alın.
Exe dosyasının bulunduğu dizindeki tüm dosya adlarını almak ve bunları dosyalar listesine kaydetmek için files = os.listdir (yol) komutunu kullanın.
Bu şekilde tüm txt dosya adlarına sahibiz, txt dosyanızı keyfi olarak adlandırabilirsiniz, program okuyabilir.
2. Verileri veritabanına yazın
(1) Veritabanına bağlanın ve veritabanında yeni bir tablo oluşturun
A. qq veritabanıma bağlan
conn = pymysql.connect (host = 'localhost', user = 'root', password = '123456', db = 'qq', charset = 'utf8')
B. Yeni bir tablo qq oluşturun
Qq veritabanında yeni bir tablo oluşturun. Tablonun adı qq'dir. 2 alan içerir: id alanı birincil anahtardır ve otomatik olarak artırılır; qq alanı bir karakter türüdür ve verileri depolamak için kullanılır.
cur.execute ("CREATE TABLE qq (id int (5) NOT NULL auto_increment, qq varchar (20) NOT NULL, PRIMARY KEY (id))")
(2) Verileri veritabanına yaz
Burada iki katman döngü kullanılır:
dosyalardaki dosya için: f = open (file, 'r', encoding = 'UTF-8') next (f) f'deki satır için: i + = 1 #print (satır) sql = "qq (qq) içine ekle değerler (% s); "cur.execute (sql, line) print (" Birinciyi ekle ", i," veri! ") conn.commit () f.close ()İlk döngü, yukarıdaki 17 txt dosyasını sırayla açmak için kullanılır.
İkinci döngü, her bir txt dosyasının her satırını sırayla okumak ve değiştirilen satır verilerini veritabanı tablosu qq'nin qq alanına yerleştirmektir.
Bu noktada toplam 32073 verinin içe aktarımı tamamlanmıştır.
Veri temizleme
Yinelenenleri kaldırmanın bir örneği ve kısaca veri temizlemeyi tanıtıyoruz.
1. Temizlenen verileri depolamak için yeni bir tablo oluşturun
Cmd penceresinin altında MySQL'de oturum açabilir, qq veritabanını açabilir ve aşağıdaki işlemleri gerçekleştirebilirsiniz:
CREATE TABLE qq_dist (id int (5) NOT NULL auto_increment, qq varchar (20) NOT NULL, PRIMARY KEY (id));
Bu şekilde, temizlenen verileri daha sonra geri çağırmak üzere depolamak için yeni bir qq_dist tablosu oluşturulur.
2. Verileri temizleyin
MySQL'de oturum açtıktan sonra aşağıdaki işlemleri gerçekleştirin:
qq_dis (qq) içine ekleyin qq'dan farklı qq seçin;
Qq tablosunda bulunan benzersiz qq alanı içeriğini qq_dist tablosundaki qq alanına ekleyin.
Verileri belirli bir formatta dışa aktarın
Durum : Temizlenmiş verilerin 101-200 satırlarını yeni bir txt metnine aktarın.
1, sınır
MySQL'de limit m, n fonksiyonunun anlamı şudur: m + 1. satırdan n satır okuyun.
Bu durumda 101-200. satırı okuyun, sınır 100.100'dür.
2. flush ()
Flush () fonksiyonu eklenmelidir, tampondaki verileri dosyaya yazabilir. Aksi takdirde, oluşturulan txt dosyasının boş olduğuna dair bir hata olacaktır.
-Bitiş-
Tsinghua-Qingdao Veri Bilimi Enstitüsü'nün resmi WeChat kamu platformunu takip edin " THU Veri Pastası "Ve kız kardeş numarası" Veri Pastası THU "Daha fazla ders avantajı ve kaliteli içerik elde edin.