IT - career path

Thảo luận trong 'Thư giãn' bắt đầu bởi depzaivai, 17/10/22.

  1. [K]

    [K] シェンムー Ryo Hazuki Lão Làng GVN

    Tham gia ngày:
    9/9/07
    Bài viết:
    9,746
    Nơi ở:
    :|
    https://www.smspool.net/main gavang
    Làm cái thẻ MásterCard qua app Viettel Money rồi nạp 1-2$ vào dùng là oke.
     
    934944 thích bài này.
  2. QuyHaiNhatDao

    QuyHaiNhatDao The Pride of Hiigara Lão Làng GVN

    Tham gia ngày:
    22/9/05
    Bài viết:
    9,026
    Ví dụ ta có đoạn code đọc đéo hiểu, hoặc có 1 function nào đó báo lỗi, etc thì ta copy đoạn đó lên cho nó + câu hỏi rõ nghĩa là nó trả lời tường tận hơn vkl ngacnhien. Mà nó translate code hơi bị đỉnh luôn, ví dụ từ Java => python hoặc ngược lại => đỡ tốn thời gian migrate raitien-gif
     
    jumper and Ventus like this.
  3. huuduy216

    huuduy216 Legend of Zelda Lão Làng GVN

    Tham gia ngày:
    29/5/07
    Bài viết:
    1,060
    cũng nên check lại nha phen. Mới bị hôm bữa, nó dùng một cái library hơi cũ với code của nó bị vấn đề về bảo mật :)) Kiểu test bình thường sẽ không biết nhưng phải Google một hồi và publish cái app rồi mới bị báo
     
    [K] thích bài này.
  4. QuyHaiNhatDao

    QuyHaiNhatDao The Pride of Hiigara Lão Làng GVN

    Tham gia ngày:
    22/9/05
    Bài viết:
    9,026
    Ah tất nhiên chứ, nếu copy 100% code nó vào thườnh sẽ chạy khum được do một số lib trước 2021. Nói chung người sử dụng nó vẫn phải biết mình đang làm gì thì sẽ tiết kiệm đc ối thời gian dapchan
     
    huuduy216 thích bài này.
  5. huuduy216

    huuduy216 Legend of Zelda Lão Làng GVN

    Tham gia ngày:
    29/5/07
    Bài viết:
    1,060
    em dân back end với embedded, mấy nay phải làm front end. Có mấy cái UI với setup căn bản đưa nó cho làm cái sườn thì đúng là trùm luôn :))
     
    QuyHaiNhatDao thích bài này.
  6. QuyHaiNhatDao

    QuyHaiNhatDao The Pride of Hiigara Lão Làng GVN

    Tham gia ngày:
    22/9/05
    Bài viết:
    9,026
    Tôi thì ngược lại, dân FrontEnd + Mobile, đang cần 1 translate 1 số đoạn code cross-platform của BE với python, má ta nói nó sướng thatim-2-gif
     
  7. LuiBee

    LuiBee Sonic the Hedgehog Lão Làng GVN

    Tham gia ngày:
    15/3/07
    Bài viết:
    4,763
    Nơi ở:
    hội đồng Nin
    đang mày mò tự học python. mình đang có cái project này nhờ anh em định hướng để tìm hiểu với:
    project của mình là mình đang có 1 mớ file eml (emails) trong nội dung mấy file này nó có những cái bảng như tên, số đt, địa chỉ. mình cần parse mấy thông tin này và copy vào 1 file excel.
    nhờ anh em chỉ giúp 1 vài từ khoá để tìm hiểu với. đang nhờ con chat gpt mà code nó chạy ra file excel trắng hoài.
    thanh kiu :2onion19:
     
  8. jumper

    jumper Baldur's Gate Lão Làng GVN

    Tham gia ngày:
    5/6/03
    Bài viết:
    26,702
    copy vào 1 data frame = pandas
    df = pd.dataframe()
    rồi dùng df.to_excel() là xong

    Mã:
    for b in dfEmail.index:
        filter = dfDVTN["Buyer"]==b
        export = dfDVTN[filter]
        if len(export) >0:
            export = export.reset_index(drop = True)
            export.index = export.index + 1
            filename = "..\\clean\\Supplier\\DVTN_"+b+".xlsx"
            export.to_excel(filename)
    ví dụ filter 1 dataframe dựa vào 1 trường, tách ra thành nhiều file excel, sau đó attach vào mail gửi đi
     
    [K] and LuiBee like this.
  9. huuduy216

    huuduy216 Legend of Zelda Lão Làng GVN

    Tham gia ngày:
    29/5/07
    Bài viết:
    1,060
    extract tables from eml file python, output table to excel file python.
    Dự là sẽ dùng pandas. Hình như nó một cái method là read_html để tự dò bảng trong file. Nếu không có thì bắt buộc bác phải biết mấy cái bảng của bác nó format làm sao, kiểu có keyword hay tag gì đặc biệt để dò không, sau đó code một cái method để dò file và kéo mấy cái trong tag ra (mấy cái này mà giỏi tiếng Anh, viết yêu cầu rõ ràng chatGPT nó làm nhanh như chớp luôn). Sau khi có bảng trong dataframe rồi thì viết lại vào file excel là quá dễ luôn.
     
  10. jumper

    jumper Baldur's Gate Lão Làng GVN

    Tham gia ngày:
    5/6/03
    Bài viết:
    26,702
    input phải có cấu trúc
    chứ ko thì bỏ mẹ
     
  11. huuduy216

    huuduy216 Legend of Zelda Lão Làng GVN

    Tham gia ngày:
    29/5/07
    Bài viết:
    1,060
    file email mà hiện được bảng trong trình duyệt thì chắc chắn có cấu trúc. Vấn đề cấu trúc nó là gì thôi =)) Nhưng mà khả năng là html, còn không thì chỉ có cách mở lên bằng text editor coi rồi tự viết code để parse cái cấu trúc đó
     
  12. LuiBee

    LuiBee Sonic the Hedgehog Lão Làng GVN

    Tham gia ngày:
    15/3/07
    Bài viết:
    4,763
    Nơi ở:
    hội đồng Nin
    thanks 2 bác mà nãy giờ dò mãi mà nó ko lấy được dữ liệu trong cái bảng ra, nó chỉ lấy được ba cái tên người gửi người nhận mail.
    mình cần lấy cái bảng dưới
    upload_2023-3-17_17-4-11.png
    giờ đang tính là mỗi file eml sẽ copy nội dung ra 1 file excel tương ứng với file đó. mỗi cái bảng thì cho vào 1 sheet riêng biệt. rồi sau này sẽ làm 1 file python khác để lấy dữ liệu từ từng file excel đó.
    Nhưng nãy giờ mò mà nó chưa lấy được cái bảng, nó chỉ lấy mấy cái thông tin của mail.
    upload_2023-3-17_17-5-55.png
     

    Các file đính kèm:

  13. huuduy216

    huuduy216 Legend of Zelda Lão Làng GVN

    Tham gia ngày:
    29/5/07
    Bài viết:
    1,060
    xem code mới quan trọng bác ơi, có cảm giác code của ông chỉ đọc meta data của email chứ không đọc content :-??
     
    LuiBee thích bài này.
  14. LuiBee

    LuiBee Sonic the Hedgehog Lão Làng GVN

    Tham gia ngày:
    15/3/07
    Bài viết:
    4,763
    Nơi ở:
    hội đồng Nin
    hì, ngại quá. toàn gpt viết :">
    đầu bài gửi cho gpt:
    write python code to parse eml files
    1. if the eml file has no xlsx attachment: copy the message data to 1 excel file. If the eml file has one or more tables, copy each table into a different sheet of that excel file. the excel file name is the same name of that eml file.
    2. if the eml file has xlsx attachment: ignore the email content, parse the xlsx attachment and copy content to an excel file. the excel file name is the same name of that eml file.

    import os
    import email
    import pandas as pd
    from bs4 import BeautifulSoup

    # set the path of the folder containing the eml files
    eml_folder_path = r'C:\Users\luibee\Dropbox\Programing\Project\Tinh_email_report\T2-2023'

    # loop through all the files in the folder
    for file_name in os.listdir(eml_folder_path):
    if file_name.endswith('.eml'): # check if it's an eml file
    # parse the email message
    with open(os.path.join(eml_folder_path, file_name), 'rb') as file:
    msg = email.message_from_binary_file(file)

    # check if the eml file has an xlsx attachment
    has_xlsx_attachment = False
    for part in msg.walk():
    if part.get_content_type() == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':
    has_xlsx_attachment = True
    xlsx_content = part.get_content()
    break

    if has_xlsx_attachment:
    # if there is an xlsx attachment, parse the attachment and copy to the Excel file
    xlsx_file = pd.read_excel(xlsx_content, engine='openpyxl')
    excel_file_name = os.path.splitext(file_name)[0] + '.xlsx'
    xlsx_file.to_excel(os.path.join(eml_folder_path, excel_file_name), index=False)
    else:
    # if there is no xlsx attachment, copy the email message data to the Excel file
    wb = pd.ExcelWriter(os.path.join(eml_folder_path, os.path.splitext(file_name)[0] + '.xlsx'))
    sheet_name = 'Message'
    message_data = []
    for key, value in msg.items():
    message_data.append([key, value])
    if msg.is_multipart():
    for part in msg.get_payload():
    if part.get_content_type() == 'text/plain':
    sheet_name = 'Text'
    content = part.get_content()
    message_data.append([sheet_name, content])
    elif part.get_content_type() == 'text/html':
    sheet_name = 'HTML'
    soup = BeautifulSoup(part.get_content(), 'html.parser')
    tables = soup.find_all('table')
    if len(tables) > 0:
    # convert each table to a pandas dataframe
    for i, table in enumerate(tables):
    df = pd.read_html(str(table))[0]
    df.to_excel(wb, index=False, sheet_name=f'{sheet_name}_{i}')
    else:
    content = part.get_content()
    message_data.append([sheet_name, content])
    else:
    continue
    df = pd.DataFrame(message_data, columns=['Field', 'Value'])
    df.to_excel(wb, index=False, sheet_name=sheet_name)
    wb.save()
     

    Các file đính kèm:

    • code.png
      code.png
      Kích thước:
      529.8 KB
      Đọc:
      6
    Chỉnh sửa cuối: 17/3/23
  15. huuduy216

    huuduy216 Legend of Zelda Lão Làng GVN

    Tham gia ngày:
    29/5/07
    Bài viết:
    1,060
    Đọc sơ qua thì đoạn đầu nó viết code chuẩn rồi đó. Sai là do ông kêu nó "if the eml file has no xlsx attachment: copy the message data to 1 excel file". Nên không có file đính kèm là nó auto copy toàn bộ file này vô 1 cái sheet luôn.

    Thử lại là "search and extract the email content for tables" coi. Với thử dùng cái read_html tui nói đi
     
    LuiBee thích bài này.
  16. LuiBee

    LuiBee Sonic the Hedgehog Lão Làng GVN

    Tham gia ngày:
    15/3/07
    Bài viết:
    4,763
    Nơi ở:
    hội đồng Nin
    ok, mình đã lấy thành công cái email đầu tiên. thanks :6cool_boss:
     
    jumper and huuduy216 like this.
  17. depzaivai

    depzaivai Dragon Quest Lão Làng GVN

    Tham gia ngày:
    30/1/06
    Bài viết:
    1,340
  18. Catnarok

    Catnarok Cat of high place

    Tham gia ngày:
    27/10/08
    Bài viết:
    5,701
    vì con chatgpt mà ngày nào cũng nhận recruiter email mời về làm data engineer

    công ty cũng tổ chức nhiều khóa học ML với nguyên cái career path cho ML engineer luôn ngacnhien

    image.jpg
     
    Chỉnh sửa cuối: 18/3/23
    Gin Melkior and jumper like this.
  19. jumper

    jumper Baldur's Gate Lão Làng GVN

    Tham gia ngày:
    5/6/03
    Bài viết:
    26,702
    từ sòftware engineer qua DE cũng không khó lắm
    function khác chút chứ kiến thức cũng thế à
     
  20. jumper

    jumper Baldur's Gate Lão Làng GVN

    Tham gia ngày:
    5/6/03
    Bài viết:
    26,702
    JD này lương bao nhiêu các bác :D
     

Chia sẻ trang này