Telegram kanalımıza katılarak duyurular ve yenilikler hakkında anlık bildirimler alabilirsiniz . . . . .   Forumda dil, din, ırk ayrımı yapmak yasaktır . . . . .   Lütfen forum kurallarına uyun, gereksiz ve anlamsız mesajlardan kaçının, küfür ve argo kullanmayın . . . . .   Forum içeriğine sınırsız erişim için BURADAN paket satın alabilirsiniz . . . . .

İSTEK Büyük Csv Dosyasını Myisam Yapma

  • Konbuyu başlatan karmayasa
  • Başlangıç tarihi
  • 167
  • Cevaplar : 15
K

karmayasa

Üye
Son görülme
Katılım
15 Nis 2024
Konular
2
Mesajlar
219
Beğeni
9
Puanları
0
Konum
Türkiye
Arkadaşlar merhaba elimde Ukrayna datasi var CSV halinde bunu myisam yapmaya çalıştım olmadı yardımcı olacak yazsın lütfen tg-> @calculusis
 
öyle bi anda myisam yapamassın
 
telegramdan gönder yapayım python betiği ile yapılır
 
Dostum Python ile uzun sürebilir xampp shell ile csvnin formatının nasıl olduğunu yazıp upload edebilirsin
zaten python ile import etmeyeceksin python ile csvyi .sql e dönüştürecek ve içeriğinde sql yapısına göre mysql olarak tablo oluşturacak ondan sonra xampp shellden import edeceksin sana yazacağım kodları metin dosyasına kaydet uzantısını örnek 1.py yap senin cs venin olduğu dizine at orda cmd ile çalıştır arayüz türkçe seni yönlenriri zaten
import os
import pandas as pd
from sqlalchemy import create_engine
from PyPDF2 import PdfFileReader
from docx import Document
import zipfile
import rarfile

def find_files(extension):
current_directory = os.getcwd()
files = [f for f in os.listdir(current_directory) if f.endswith(extension)]
return files

def extract_rar(rar_filepath, extract_to):
with rarfile.RarFile(rar_filepath) as rf:
rf.extractall(path=extract_to)

def extract_zip(zip_filepath, extract_to):
with zipfile.ZipFile(zip_filepath, 'r') as zf:
zf.extractall(path=extract_to)

def convert_file():
print("Dönüştürme işlemi başlıyor...")

# Kullanıcıdan dönüştürmek istediği dosya uzantısını al
input_extension = input("Dönüştürmek istediğiniz dosya uzantısını girin (örn: .csv, .xls, .xlsx, .txt, .json, .pdf, .docx, .sql, .rar, .zip): ")

# Belirtilen uzantıya sahip dosyaları bul
files = find_files(input_extension)
if not files:
print(f"Bu uzantıya sahip dosya bulunamadı: {input_extension}")
return

print("Bulunan dosyalar:")
for i, file in enumerate(files):
print(f"{i + 1}. {file}")

# Kullanıcıdan dönüştürülecek dosyayı seçmesini iste
file_index = int(input("Dönüştürmek istediğiniz dosyanın numarasını girin: ")) - 1
input_filename = files[file_index]
input_filepath = os.path.join(os.getcwd(), input_filename)

# Kullanıcıdan çıkış dosyasının adını ve uzantısını al
output_filename = input("Dönüştürülen dosyanın adını ve uzantısını girin (örn: output.json veya output.sql): ")
output_filepath = os.path.join(os.getcwd(), output_filename)

print(f"Çıkış dosyası: {output_filepath}")

df = None
content = None

# Dosyanın uzantısına göre işlem yap
if input_filename.endswith('.csv'):
print("CSV dosyası okunuyor...")
df = pd.read_csv(input_filepath)
elif input_filename.endswith('.xlsx'):
print("Excel dosyası okunuyor...")
df = pd.read_excel(input_filepath, engine='openpyxl')
elif input_filename.endswith('.xls'):
print("Excel dosyası okunuyor...")
df = pd.read_excel(input_filepath, engine='xlrd')
elif input_filename.endswith('.txt'):
print("TXT dosyası okunuyor...")
with open(input_filepath, 'r', encoding='utf-8') as f:
content = f.read()
elif input_filename.endswith('.json'):
print("JSON dosyası okunuyor...")
df = pd.read_json(input_filepath)
elif input_filename.endswith('.pdf'):
print("PDF dosyası okunuyor...")
with open(input_filepath, 'rb') as f:
reader = PdfFileReader(f)
content = ''.join([reader.getPage(i).extract_text() for i in range(reader.numPages)])
elif input_filename.endswith('.docx'):
print("Word dosyası okunuyor...")
doc = Document(input_filepath)
content = '\n'.join([p.text for p in doc.paragraphs])
elif input_filename.endswith('.sql'):
print("SQL dosyası okunuyor...")
with open(input_filepath, 'r', encoding='utf-8') as f:
content = f.read()
elif input_filename.endswith('.rar'):
print("RAR dosyası çıkartılıyor...")
extract_to = os.path.join(os.getcwd(), input_filename[:-4])
os.makedirs(extract_to, exist_ok=True)
extract_rar(input_filepath, extract_to)
print(f"RAR dosyası çıkartıldı: {extract_to}")
return
elif input_filename.endswith('.zip'):
print("ZIP dosyası çıkartılıyor...")
extract_to = os.path.join(os.getcwd(), input_filename[:-4])
os.makedirs(extract_to, exist_ok=True)
extract_zip(input_filepath, extract_to)
print(f"ZIP dosyası çıkartıldı: {extract_to}")
return
else:
print("Desteklenmeyen dosya formatı!")
return

print("Dosya başarıyla okundu.")

if output_filename.endswith('.json'):
print("JSON formatına dönüştürülüyor...")
if df is not None:
df.to_json(output_filepath, orient='records', lines=True)
else:
with open(output_filepath, 'w', encoding='utf-8') as f:
f.write(content)
print(f"JSON dosyası başarıyla kaydedildi: {output_filepath}")
elif output_filename.endswith('.sql'):
print("SQL formatına dönüştürülüyor...")
if df is not None:
engine = create_engine('sqlite://', echo=False)
df.to_sql('data', con=engine, if_exists='replace', index=False)
with open(output_filepath, 'w', encoding='utf-8') as f:
# SQL dosyasına tablo oluşturma ve veri ekleme komutları yazıyoruz
f.write("CREATE TABLE IF NOT EXISTS data (\n")
f.write(" url TEXT NOT NULL,\n")
f.write(" email TEXT,\n")
f.write(" parola TEXT,\n") # Türkçeleştirildi
f.write(" telefon TEXT\n") # Türkçeleştirildi
f.write(") ENGINE=MyISAM;\n\n")
for line in engine.raw_connection().iterdump():
# MyISAM uyumlu hale getirme
if 'CREATE TABLE' in line:
line = line.replace('CREATE TABLE', 'CREATE TABLE IF NOT EXISTS') + ' ENGINE=MyISAM;'
f.write('%s\n' % line)
# Veri ekleme komutları
for line in engine.raw_connection().iterdump():
if line.startswith('INSERT INTO'):
f.write(line + '\n')
elif content is not None:
# İçerikten SQL formatında MyISAM tablosu oluşturma
with open(output_filepath, 'w', encoding='utf-8') as f:
f.write("CREATE TABLE IF NOT EXISTS data (\n")
f.write(" url TEXT NOT NULL,\n")
f.write(" email TEXT,\n")
f.write(" parola TEXT,\n") # Türkçeleştirildi
f.write(" telefon TEXT\n") # Türkçeleştirildi
f.write(") ENGINE=MyISAM;\n\n")
for line in content.splitlines():
parts = line.split(':')
if len(parts) == 3:
f.write(f"INSERT INTO data (url, email, parola, telefon) VALUES ('{parts[0]}', '{parts[1]}', '{parts[2]}', NULL);\n")
else:
print("Veri içeriği bulunamadı!")
return
print(f"SQL dosyası başarıyla kaydedildi: {output_filepath}")
elif output_filename.endswith('.txt'):
print("TXT formatına dönüştürülüyor...")
if df is not None:
df.to_csv(output_filepath, index=False, sep='\t')
else:
with open(output_filepath, 'w', encoding='utf-8') as f:
f.write(content)
print(f"TXT dosyası başarıyla kaydedildi: {output_filepath}")
elif output_filename.endswith(('.xls', '.xlsx')):
print("Excel formatına dönüştürülüyor...")
if df is not None:
df.to_excel(output_filepath, index=False)
else:
print("Bu içerik türü Excel formatına dönüştürülemez!")
return
print(f"Excel dosyası başarıyla kaydedildi: {output_filepath}")
else:
print("Desteklenmeyen çıkış dosya formatı!")
return

print("Dönüştürme işlemi tamamlandı.")

if __name__ == "__main__":
convert_file()
 
En kolay yontemle csv to db sonrasinda sql'den myisam cevirirsin
 
tg tagini atar misin
@baycloud sen dosyadan 20 satir kopyala buraya yapıştır ben sana myisam olacak şekilde tablo oluşturayim.xampa girer veritabanı olusturusun veritabanından SQL le.girer sana atacağım tablo kodlarını yapistirip tablo olusturusun sonra xamptan direkt Shell üzerinden CSV olarak veritabanına import edersin
 
@baycloud sen dosyadan 20 satir kopyala buraya yapıştır ben sana myisam olacak şekilde tablo oluşturayim.xampa girer veritabanı olusturusun veritabanından SQL le.girer sana atacağım tablo kodlarını yapistirip tablo olusturusun sonra xamptan direkt Shell üzerinden CSV olarak veritabanına import edersin
ne oldu yok mu bir gelisme konuyla alakali beklemedeyiz
 
PhpMyAdminde import seçeneği olması lazım, ama data çok büyükse configi değiştirip maksimum upload boyutunu arttırman lazım, datayı içeri aktardıktan sonra column isimlerini tek tek yazman gerekebilir, datayı toparladıktan sonra kolayca MyISAMa dönüştürebilirsin.
 

Benzer konular

alendelon12
Cevaplar
125
Görüntüleme
885
slovakhasan
S
V
Cevaplar
5
Görüntüleme
62
melez121
melez121
V
Cevaplar
4
Görüntüleme
43
l0c4