مساعدة python: كتابة عناصر القائمة في ملف CSV
banner
2020-09-12 , 12:54 صباحاً
high 8 high’s Avatar
high 8 high

مشارك

المشاركات:179
التسجيل:May 2011
high 8 high
السلام عليكم ورحمة الله وبركاته

أريد مساعدة في كتابة عناصر القائمة في ملف CSV

شرح مختصر عن الفكرة

استورد مكتبة selenium

channels_names_list = []
num = 0

driver = webdriver.Firefox()
site = "http://oooo.com/

channels names elements = driver.find_elements_by_xpath"xxxxx"

for i in channels names elements:
channels_names_list.append(i)

طبعا قمت بتوضيح كيفية إضافة العناصر في القائمة
هذه العناصر هي المطلوب كتابتها في ملف CSV

طلب من أحد الأشخاص مساعدتي وهذا ما قدمه لي جزاه الله خيرا
ولكنها ليست النتيجة المطلوب علما أنها مناسبة بنسبة 90%

import pandas as pd

def data_headers():
data_headers = {
"first_col":[],
"second_col":[],
"third_col":[],
"fourth_col":[],
"fifth_col":[],
"sixth_col":[],
"seventh_col":[],

}
df = pd.DataFrame(data_headers)
return df


def adding_data():
df_data = pd.DataFrame()
df_data["first_col"] = ''' Your data here as a list''' #put your data here as a list
df_data["second_col"] = ''' Your data here as a list''' #put your data here as a list
df_data["third_col"] = ''' Your data here as a list''' #put your data here as a list
df_data["fourth_col"] = ''' Your data here as a list''' #put your data here as a list
df_data["fifth_col"] = ''' Your data here as a list''' #put your data here as a list
df_data["sixth_col"] = ''' Your data here as a list''' #put your data here as a list
df_data["seventh_col"] = ''' Your data here as a list'''#put your data here as a list
df = data_headers().append(df_data)
return df.to_csv("output_file.csv",mode="a")

adding_data()

وأخيرا
هذا هو النص البرمجي الخاص بي ويشمل طريقة حفظ العناصر في القائمة

from selenium import webdriver

#numbers
number_1 = 0

# lists
channels_names_list = []
channels_urls_list = []

### Code ###

# Driver
driver = webdriver.Firefox()

# open site
site = 'https://www.youtube.com/channel/00000/channels'
driver.get(site)
print('page loaded')

#Featured Channels Elements Count
ff_chnls_ellms = driver.find_elements_by_xpath('//*[@id="items"]/ytd-grid-channel-renderer')

number_1 = 1
for i in ff_chnls_ellms:
name_element_1 = '/html/body/ytd-app/div/ytd-page-manager/ytd-browse/ytd-two-column-browse-results-renderer/div[1]/ytd-section-list-renderer/div[2]/ytd-item-section-renderer/div[3]/ytd-grid-renderer/div[1]/ytd-grid-channel-renderer['
name_element_2 = ']/div/a/span'
channel_title_element = driver.find_elements_by_xpath(name_element_1 + str(number_1) + name_element_2)
channel_title_grapper = channel_title_element[0].text
print(number_1, '-',channel_title_grapper)
channels_names_list.append(str(channel_title_grapper))

حاولت حفظ العناصر في ملف CSV عن طريق For loop
ولكن تظهر النتيجة هكذا


A, B, C, , D, E, F, etc

بدلا من
ABC, DEF, etc

وبعض الحلول إذا طبقتها تكون النتيجة هكذا
A
B
C


D
E
F
Enlarged Image
2020-09-12 , 12:54 صباحاً
2020-09-28 , 11:49 مساءً
javascript’s Avatar
javascript

عضو جديد

المشاركات:9
التسجيل:Dec 2018
javascript
السلام عليكم



انشئ ملف نصي اسمه g.txt بجانب ملف الكود التالي

[CODE]

f = open("g.txt", "w")

your_header = ["a","b","c"]
your_data = [ ["1a","1b","1c"] , ["2a","2b","2c"],["3a","3b","3c"],["4a","4b","4c"]]
f.write(",".join(your_header)+"\n")

for row in your_data :

f.write(",".join(row)+"\n")


f.close ()
[/CODE]استبدل your_header و your_data بالبيانات التي تريد





عند تشغيل الكود اكثر من مرة سيتم الكتابة فوق البيانات السابقة


يجب ان تقوم بكتابة كافة البيانات قبل f.close()



ايضا يمكنك استبدال g.txt ب امداد الملف مع مراعاة تحويل " \ " الى " \ \ " او استخدام مكتبة os للحصول على رابط داينميكي لمجلد efile على سطح المكتب


[CODE]

import os
dyn_path=os.path.join(os.path.expandvars("%userprofile%"),"Desktop","efile","")[/CODE]
2020-09-28 , 11:49 مساءً