powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python форматирование текста при записи в CSV
18 сообщений из 43, страница 2 из 2
Python форматирование текста при записи в CSV
    #38239549
BadMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LamerO4ekтак вот как бы мне создавать папку в последней функции с именем которое я получаю в другой функции в одном из циклов

тоесть вот как должно быть


Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
def func1():
      a = 0
      return a #ретурн возвращает перечисленные значения

def func2(func1_a):
      func2_a = func1_a
      print(func2_a)

if __name__ == '__main__':
      a_func1 = func1()
      func2()
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38239553
BadMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извиняюсь, поправил...


Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
def func1():
      a = 0
      return a #ретурн возвращает перечисленные значения

def func2(func1_a):
      func2_a = func1_a
      print(func2_a)

if __name__ == '__main__':
      a_func1 = func1()
      func2(a_func1)
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38239731
Фотография FishHook
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LamerO4ek,
Я же тебе уже говорил, что за такое нужно уши обрывать, ты вроде тогда понял, теперь снова за старое
Код: python
1.
os.makedirs('D:/Work/GA API/MainProject/test//%s//%s_' % (date_,results.get('profileInfo').get('profileName')))
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38239771
LamerO4ek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BadMFизвиняюсь, поправил...


Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
def func1():
      a = 0
      return a #ретурн возвращает перечисленные значения

def func2(func1_a):
      func2_a = func1_a
      print(func2_a)

if __name__ == '__main__':
      a_func1 = func1()
      func2(a_func1)



извените, здесь я не понял как это поможет (((

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
def get_profile_id(service):
................................................
for a in b:
   for c in d:
                domain_name = os.path.join('D:/Work/GA API/MainProject/test//%s//' % date_)
                full_name = os.path.join(domain_name + name)
                os.makedirs(full_name) # я как-то могу это значение призвать в функции def print_results(results):
       for p in s:
.............................................
yield profile # важно чтобы все циклы были соблюдены чтобы получить значение profile соответсвующее значению full_name в этом проблема(((  

def get_results(service, profile_id):

def print_results(results):
os.makedirs('D:/Work/GA API/MainProject/test//%s//!!!(full_name)!!!//%s' % (date_,!!!(full_name)!!!,results.get('profileInfo').get('profileName'))) # вызвать его здесь!!



вот такая блин фигня выходит(


это main
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
def main(argv):
    
    service = sample_utils.initialize_service()
    
    profile = get_profile_id(service)
    
    for profile_id in profile:
        #print profile_id

        if profile_id:
            
                results = get_results(service, profile_id)

            
                print_results(results)
                
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38239835
BadMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: python
1.
2.
for a in b:
   for c in d:


не называйте так переменные, это плохо, приводит к невозможности поддерживать код.

по теме беседы:
в функцие get_profile_id у вас в цикле создание папок я так понимаю? если да, то вам необходимо создавать коллекцию созданных папок и выдавать её на выход функции. Ну если быстро сделать то это будет так:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
count = 0
result_paths = {}
for a in b:
   for c in d:
                domain_name = os.path.join('D:/Work/GA API/MainProject/test//%s//' % date_)
                full_name = os.path.join(domain_name + name)
                result_paths[count] = full_name # каждый полученный путь записывается в словарь путей
                count += 1 #собственно итератор записи что бы можно было записывать рядом, а не поверх
                os.makedirs(full_name)
       for p in s:
.......................

     return result_paths #возвращаем в качестве результата работы функции словарь путей

.......................

def print_results(result_paths): #на вход функции подаём полученный из первой функции словарь путей
     for path in result_paths:
              print (result_paths[path]) #печатаем в цикле каждый элемент словаря.



что-то вроде, но как вы понимаете я это не отлаживал, мог где ошибиться =)
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38239882
LamerO4ek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FishHook,

прости меня я поправился)) так лучше?
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
  try:  
    dir = os.path.join('D:/Work/GA API/MainProject/test/', date_, results.get('profileInfo').get('profileName'))
    os.makedirs(dir)
  except OSError:
    pass
  finally:  
    csv_create = open(dir,  "%s.csv" % date_, "wb")
    
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38239886
LamerO4ek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BadMF
Код: python
1.
2.
for a in b:
   for c in d:


не называйте так переменные, это плохо, приводит к невозможности поддерживать код.

по теме беседы:
в функцие get_profile_id у вас в цикле создание папок я так понимаю
[/src]

что-то вроде, но как вы понимаете я это не отлаживал, мог где ошибиться =)

спасибо Вам за ваши труды.)) переменные так не называл просто для примеры так скинул чтоб весь код не копировать
по теме беседы:
там все сложнее
функция get_profile_id вытягивает id по которым я потом в def print_results(results): хочу записывать результат который добывается функцией def get_results(service, profile_id):
там такая структура просто что
Код: python
1.
2.
3.
domain_name = os.path.join('D:/Work/GA API/MainProject/test/', date_)
                full_name = os.path.join(domain_name,  name)
                os.makedirs(full_name)


этому full_name - могут соотвествовать несколько id которые мы вытащим в конце цикла, то есть получается схема такая здесь я вытягиваю имя full_name создается папка в нее потом создается еще папка ( одна или более с этим id конечными) а далие в них уже записывается результат в csv вытянутый функцией def get_results(service, profile_id):


вот ниже скидываю весь полный код чтобы было понятнее.

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
#!/usr/bin/python
#encoding: utf-8

import sys
import sample_utils
import csv
import time
import pprint
import os
import string

from apiclient.errors import HttpError
from oauth2client.client import AccessTokenRefreshError

from datetime import date
from calendar import monthrange

date_ = date.today()

if date_.day == 1:
    mrange_ = monthrange(date_.year, date_.month - 1)
    date_ = date_.replace(month = date_.month - 1, day = mrange_[1])
    date_ = date_.strftime('%Y-%m-%d')

else:
    date_ = date_.replace(day = date_.day -1)
    date_ = date_.strftime('%Y-%m-%d')

print(date_)


def main(argv):
    
    service = sample_utils.initialize_service()
    
    profile = get_profile_id(service)
    
    for profile_id in profile:
        #print profile_id

        if profile_id:
            
                results = get_results(service, profile_id)

            
                print_results(results)
                
                
             

    
     
		     
def get_profile_id(service):
    accounts = service.management().accounts().list().execute()
    account_list = accounts.get('items')
    account_list = account_list[4:5]
    for account in account_list:
        time.sleep(0.025)
        id = account.get('id')
        webproperties = service.management().webproperties().list(accountId=id).execute()
        webproperties = webproperties.get('items')

        
        for webproperty in webproperties:
            id_web = webproperty.get('id')
            name = webproperty.get('name')
            name = name.replace(':','')
            name = name.replace('/','')
            name = name.replace('http','')
            name = name.replace('www','')
            name = name.replace('.','', 1)
            try:
                domain_name = os.path.join('D:/Work/GA API/MainProject/test/', date_)
                full_name = os.path.join(domain_name,  name)
                os.makedirs(full_name)
            except OSError:
                pass
            finally:
        #pprint.pprint( webproperties)
                #return
                profiles = service.management().profiles().list(accountId=id,webPropertyId=id_web).execute()
                profiles = profiles.get('items')
                for profile in profiles:
                    profile = profile.get('id')
                    yield profile
                  
                
          
    
                


def get_results(service, profile_id):
    return service.data().ga().get(
      ids='ga:' + profile_id,
      start_date=date_,
      end_date=date_,
	  metrics='ga:visits,ga:goalCompletionsAll,ga:pageviewsPerVisit,ga:timeOnSite', #ga:pageviews',#ga:goalStartsAll', #', #ga:pageviews', #',
      dimensions='ga:customVarValue1',#ga:customVarValue2', #ga:pageDepth', #',ga:date',
	  sort='-ga:visits',
      #filters='ga:medium==referral',
      #start_index='1',
      max_results='50'
	  ).execute()
   
def print_results(results):
  try:  
    dir = os.path.join('D:/Work/GA API/MainProject/test//ЗДЕСЬ full_name!!!!!//', date_, results.get('profileInfo').get('profileName')) # здесь должен быть тот путь который мы пытаемся вставить 
    os.makedirs(dir)
  except OSError:
    pass
  finally:  
    csv_create = open(dir,  "%s.csv" % date_, "wb")
    
    csv_write = csv.writer(csv_create, delimiter=' ', skipinitialspace=True, doublequote=False, quoting=csv.QUOTE_NONE, lineterminator='', escapechar=' ') 
    
    for header in results.get('columnHeaders'):    
        csv_write.writerow('%25s' % header.get('name'))
    
    if results:
        if  results.get('rows'):
            csv_write.writerow('\n') 
            for row in results.get('rows'):
                
                for cell in row:
                    
                    csv_write.writerow( '%25s' % cell)
                csv_write.writerow('\n')        
            else:        
                csv_write.writerow('no')
        else:        
                csv_write.writerow('no')                 
    csv_create.close()
  #print results
  #return
  print 'Profile Name: %s' % results.get('profileInfo').get('profileName')
  print
  output = []
  for header in results.get('columnHeaders'):
    output.append('%25s' % header.get('name'))
  print ''.join(output)
  if results:
    if results.get('rows'):
        for row in results.get('rows'):
            output = []
            for cell in row:
                output.append('%25s' % cell)
            print ''.join(output)
   
            print 
    else:
        print 'no'
  else:
    print 'No results found'


if __name__ == '__main__':
  main(sys.argv)  
       
    
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38239944
LamerO4ek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот такой вопрос может ли эта функция возвращать сразу два значения одновременно в конце всех циклов ????
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
def get_profile_id(service):
    accounts = service.management().accounts().list().execute()
    account_list = accounts.get('items')
    account_list = account_list[4:5]
    for account in account_list:
        time.sleep(0.025)
        id = account.get('id')
        webproperties = service.management().webproperties().list(accountId=id).execute()
        webproperties = webproperties.get('items')

        
        for webproperty in webproperties:
            id_web = webproperty.get('id')
            name = webproperty.get('name')
            name = name.replace(':','')
            name = name.replace('/','')
            name = name.replace('http','')
            name = name.replace('www','')
            name = name.replace('.','', 1) ########### вот этот нэйм
            
        #pprint.pprint( webproperties)
                #return
                profiles = service.management().profiles().list(accountId=id,webPropertyId=id_web).execute()
                profiles = profiles.get('items')
                for profile in profiles:
                    profile = profile.get('id')
                    yield profile ########### и вот этот список 


тогда получится что одному name будет соответствовать нужный список profile и можно будет это использовать в другой функции
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38240023
BadMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LamerO4ek,

функция может возвращать коллекцию неограниченного числа переменных, а так же изменять глобальные переменные. Если учесть то, что у вас print_results вызывается внутри цикла можете использовать глобальную переменную, так вам будет проще наверное в этом случае.

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#import block
import ...

#def global vars

myGlobalVar

#def functions

def func1():
    global myGlobalVar = 48

def printFuncN():
    print(myGlobalVar)

if __name__ == '__main__':
    printFuncN()
    func1()
    printFuncN()



В результате получите на выводе:
0
48


подробнее или пример к вашему коду лениво писать...
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38240024
BadMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#import block
import ...

#def global vars

myGlobalVar = 0

#def functions

def func1():
    global myGlobalVar = 48

def printFuncN():
    print(myGlobalVar)

if __name__ == '__main__':
    printFuncN()
    func1()
    printFuncN()



В результате получите на выводе:
0
48
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38240097
LamerO4ek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоесть я правельно понял

в начале я называю ее а потом могу функцией в цикле присваивать каждый раз новое значение?
как-то??
подскажите с синтаксисом пожалуйста


Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
import ...
........................
global name

................................

def get_profile_id(service):
.................................................................
            name = webproperty.get('name')
            global name = webproperty.get('name') # как-то так?
..................................................................
# и тогда смогу всунуть ее  в каждый цикл свою сюда ?
def print_results(results):

os.path.join('D:/Work/GA API/MainProject/test/', name, date_)
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38240125
BadMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я уже подсказывал с синтаксисом, не понимаю что тут не понятно и сто ещё подсказать.

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
#import block
import ...

#def global vars

myGlobalVar = 0

#def functions

def func1():
    global myGlobalVar
    myGlobalVar = 48

def printFuncN():
    print(myGlobalVar)

if __name__ == '__main__':
    printFuncN()
    func1()
    printFuncN()
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38240132
BadMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
import ...
........................
name = ''

................................

def get_profile_id(service):
.................................................................
            global name
            name = webproperty.get('name') # как-то так?
..................................................................
# и тогда смогу всунуть ее  в каждый цикл свою сюда ?
def print_results(results):

os.path.join('D:/Work/GA API/MainProject/test/', name, date_)


почитайте документацию чтоли - там же просто всё.
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38240145
LamerO4ek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BadMF
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
import ...
........................
name = ''

................................

def get_profile_id(service):
.................................................................
            global name
            name = webproperty.get('name') # как-то так?
..................................................................
# и тогда смогу всунуть ее  в каждый цикл свою сюда ?
def print_results(results):

os.path.join('D:/Work/GA API/MainProject/test/', name, date_)


почитайте документацию чтоли - там же просто всё.

почитал, загуглил получилось, создается как надо, а то я тут уже такой велосипед на изобретал))
спасибо много нового и интересного рассказали и показали
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38240146
BadMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя после импорта объявлять пустую глобальную переменную не обязательно и даже вредно, лучше ограничиться глобальной переменной внутри функции.
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38240347
LamerO4ek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо убрал после импорта глобальные
скажите а я могу заменить это как то
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
            global name 
            name = webproperty.get('name')
            name = name.replace(':','')
            name = name.replace('/','')
            name = name.replace('http','')
            name = name.replace('www','')
            name = name.replace('|','')
            name = name.replace('?','')
            name = name.replace('*','')
            name = name.replace('"','')
            name = name.replace('<','')
            name = name.replace('>','')
            name = name.replace('/','')
            name = name.replace('.','', 1) 
             


на
строкой типа
name = name.replace( 'все этоо в кавычках и через запяту', '')
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38240364
BadMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LamerO4ek,

вместо замены символов можно использовать поиск нужных:
http://docs.python.org/2/library/re.html
...
Рейтинг: 0 / 0
Python форматирование текста при записи в CSV
    #38240374
BadMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на гугле совсем забанили чтоли?
.replace python
...
Рейтинг: 0 / 0
18 сообщений из 43, страница 2 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python форматирование текста при записи в CSV
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]