Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Узнать сколько файлов в папке 
V
    Опции темы
V0lk0d@V
Дата 19.2.2007, 05:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 21.10.2004

Репутация: нет
Всего: нет



Помогите решить проблему. Толи из за того что ночь на дворе но не могу придумать что делать. Допустим есть папка и мне надо узнать сколько в этой папке файлов. Толи это делать с помощью Regular Expression на подобие 
Код
os.system("dir/a > number.txt")
 а потом уже в этом файле фразу искать где говориться сколько файлов. Толи есть более легкая команда скорее даже системная виндов.
PM ICQ   Вверх
pythonwin
Дата 19.2.2007, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Код

import os
for k in os.listdir('.'):
    if os.path.isfile('./'+k): print k+' is file'


ОС:
debian и winxp

Это сообщение отредактировал(а) pythonwin - 19.2.2007, 06:20
PM WWW GTalk Jabber   Вверх
V0lk0d@V
Дата 19.2.2007, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 21.10.2004

Репутация: нет
Всего: нет



Спасибо как раз то что надо smile
А если надо исползовать каждый из этих файлов. К примеру 
Код
g++ каждый файл
 то как это лучше сделать?  Мне кажется так не правильно:
Код

import os
for k in os.listdir('.'):
    if os.path.isfile('./'+k) : os.system("g++ " + k)

PM ICQ   Вверх
pythonwin
Дата 19.2.2007, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Цитата(V0lk0d@V @  19.2.2007,  17:54 Найти цитируемый пост)
 то как это лучше сделать?  Мне кажется так не правильно:

напиши, пожалуйста, постановку задачи, а то не понятно что ты хочешь сделать smile
PM WWW GTalk Jabber   Вверх
V0lk0d@V
Дата 19.2.2007, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 21.10.2004

Репутация: нет
Всего: нет



Есть папка с CPP файлами и надо все их скомпилировать. Вот я и хочу каждый файл взять и скомпилировать с помощю 
Код

g++ Название файла

Спасибо что помогаешь а то Python пока для меня ново
PM ICQ   Вверх
V0lk0d@V
Дата 20.2.2007, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 21.10.2004

Репутация: нет
Всего: нет



Код

import os
name = ""
  for k in os.listdir('.'):
    if os.path.isfile('./' +k):
       name = name + "a"
       os.system('g++ ' + k + ' -o ' + name)

Вот примерно то что я хочу. Все хорошо вот только скомпилированные программы сохраняются в файлах "а", "аа", "ааа" и т.п. Тоесть теоритически меня это устраивает. Вот хорошо было бы взять название файла(тоесть к) и убрать из него последние 3 буквы

Это сообщение отредактировал(а) V0lk0d@V - 20.2.2007, 01:35
PM ICQ   Вверх
Artemios
Дата 20.2.2007, 02:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Можно бы наверно и так:
Код

import os
name = ""
  for k in os.listdir('.'):
    if os.path.isfile('./' +k) and k.split('.')[-1]=='cpp':
       name = k.split('.')[-2]
       os.system('g++ ' + k + ' -o ' + name)

только все одно это из пушки (Питона) по воробьям, в данной задаче проще shell-скрипт:
Код

for k in ./*.cpp
do
g++ $k -o `expr $k : '\(.*\)[.].*'`
done




--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
cherep
Дата 20.2.2007, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 11.1.2006
Где: Москва

Репутация: 1
Всего: 4



М.б. как-то так?

Код

import os

PATH = '.'
OUT = 'out'

for file in os.listdir(PATH):
  fullPath = PATH + '/' + file
  if os.path.isfile(fullPath):
    if file[-4:] == '.cpp':
      outName = file[:-4] + '.out'
      os.system('g++ ' + fullPath + ' -o ' + OUT + '/' + outName)


PS. Эх, опередили, а shell-скрипты таки и правда лучше в подобных задачах

Это сообщение отредактировал(а) cherep - 20.2.2007, 02:56
PM MAIL WWW ICQ   Вверх
pythonwin
Дата 20.2.2007, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



немного изменил:
Код

import os
PATH = os.curdir
OUT = 'out'
for file in os.listdir(PATH):
    fullPath = os.path.abspath('%s/%s'%(PATH,file)
    if os.path.isfile(fullPath):
        if file[-4:] == '.cpp':
            outName = file[:-4] + '.'+OUT
            os.system('g++ %s -o %s/%s'%(fullPath, OUT, outName))

а это из ФП
Код

[os.system('g++ %s -o %s/%s.%s'%(os.path.curdir+'/'+file, 'out', file[:-4],'out')) for file in os.listdir(os.path.curdir) if os.path.isfile(os.path.curdir+'/'+file) and file[-4:] == '.cpp']

PM WWW GTalk Jabber   Вверх
Artemios
Дата 20.2.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Если необходимо именно из Питона, и по спп файлам пройтись, можно еще glob воспользоваться:
Код

import os, glob
for file in glob.glob('./*.cpp'):
    # условимся, что вложенных папок с '.cpp' в конце имени нет, иначе isfile таки нужен будет
    os.system('g++ '+file+' -o '+file[:-4])




--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
V0lk0d@V
Дата 20.2.2007, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 21.10.2004

Репутация: нет
Всего: нет



Всем спасибо smile очень помогли
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1004 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.