Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Python
Перезагрузить страницу Wildcard characters problem on Windows как исправить
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
AndOr AndOr вне форума
Member
 
Сообщений: 24
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2009
По умолчанию Wildcard characters problem on Windows как исправить - 06.11.2010, 21:03

Всем привет, я не так давно начал ковыряться в Питоне и столкнулся с проблемами, к которым никак и нигде не могу найти решение. Наконец дошёл до форума, чтобы попросить о помощи и вместе разобраться.

Итак, у меня есть некий питоновский скрипт, который я скачал бесплатно у одного программиста.

Во-первых, меня интересует такая возможность: хочу в виндовской cmd писать не
Цитата:
>python C:\python27\rename.py [args]
а вот так:
Цитата:
>python rename.py [args]
Возможно ли это сделать в Windows, если я нахожусь не в директории со скриптом?

Во-вторых, это касается конкретно скачанного мною скрипта. Как я понял, он был сделан и тестирован под UNIX, но я использую его под Win Vista Home Premium.
Краткое описание: скрипт осуществляет преобразования имён файлов - замена одних символов другими, удаление символов от начала и от конца названия.
Он в целом у меня работает, но есть одна беда, которая делает его бесполезным - я не могу использовать с ним wildcard символ asterisk (*), к примеру:
Цитата:
>python C:\python27\rename.py -r "_-_" "-" *.txt
эта команда должна заменить в именах всех txt файлов в текущей директории все "_-_" на "-". Но вместо этого я получаю ошибку:
Цитата:
Error renaming '*.txt': The filename, directory name or volume label syntax is incorrect
Вот это мне не понятно, *.txt должно дать все файлы с расширением txt!!

текст скрипта:
[PYTHON]#!/usr/bin/env python
"""
Author: Matt Weber
Date: 03/04/07

Renames files based on the input options.
"""

import os
import sys
from optparse import OptionParser

def RenameFile(options, filepath):
"""
Renames a file with the given options
"""
# split the pathname and filename
pathname = os.path.dirname(filepath)
filename = os.path.basename(filepath)

# trim characters from the front
if options.trimfront:
filename = filename[options.trimfront:]

# trim characters from the back
if options.trimback:
filename = filename[:len(filename)-options.trimback]

# replace values if any
if options.replace:
for vals in options.replace:
filename = filename.replace(vals[0], vals[1])

# convert to lowercase if flag set
if options.lowercase:
filename = filename.lower()

# create the new pathname and rename the file
new_filepath = os.path.join(pathname, filename)
try:
# check for verbose output
if options.verbose:
print "%s -> %s" % (filepath, new_filepath)

os.rename(filepath, new_filepath)
except OSError, ex:
print >>sys.stderr, "Error renaming '%s': %s" % (filepath, ex.strerror)

if __name__ == "__main__":
"""
Parses command line and renames the files passed in
"""
# create the options we want to parse
usage = "usage: %prog [options] file1 ... fileN"
optParser = OptionParser(usage=usage)
optParser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False,
help="Use verbose output")
optParser.add_option("-l", "--lowercase", action="store_true", dest="lowercase", default=False,
help="Convert the filename to lowercase")
optParser.add_option("-f", "--trim-front", type="int", dest="trimfront", metavar="NUM",
help="Trims NUM of characters from the front of the filename")
optParser.add_option("-b", "--trim-back", type="int", dest="trimback", metavar="NUM",
help="Trims NUM of characters from the back of the filename")
optParser.add_option("-r", "--replace", action="append", type="string", nargs=2, dest="replace",
help="Replaces OLDVAL with NEWVAL in the filename", metavar="OLDVAL NEWVAL")
(options, args) = optParser.parse_args()

# check that they passed in atleast one file to rename
if len(args) < 1:
optParser.error("Files to rename not specified")

# loop though the files and rename them
for filename in args:
RenameFile(options, filename)

# exit successful
sys.exit(0)[/PYTHON]

прилагаю readme к скрипту.
ну и заодно сам скрипт в формате txt (смотрю вроде .py нельзя прикрепить), если понадобится, собственно просто переименуйте его в .py

Заранее благодарен.
Вложения
Тип файла: txt rename_readme.txt (2.3 Кб, 142 просмотров)
Тип файла: txt rename.txt (2.5 Кб, 121 просмотров)
Ответить с цитированием
  (#2 (permalink)) Старый
AndOr AndOr вне форума
Member
 
Сообщений: 24
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2009
По умолчанию 07.11.2010, 02:34

Так, ок, на одном из Windows Help форумов я получил ответ на первый вопрос: нет, это невозможно. Ни в Win, ни в *nix.

Также я получил совет, что нужна модификация скрипта, чтобы он работал. Т.е. это чисто питоновский вопрос остаётся.

Есть какие идеи? Буду теперь в этом направлении работать.
Ответить с цитированием
  (#3 (permalink)) Старый
AndOr AndOr вне форума
Member
 
Сообщений: 24
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2009
По умолчанию 09.11.2010, 11:04

Разобрался вчера. Мне посоветовали попробовать glob и это сработало на 100%. Всего лишь добавил одну строчку и исправил одну переменную.

Хороший скрипт, давно такой хотел. Буду, наверное, его дальше расширять.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
a problem has been detected and windows has been shut down to prevent damage to your denix Любые вопросы от новичков 15 13.01.2012 03:45
PROBLEM с производительностью ПК! Grozkif Любые вопросы от новичков 78 25.08.2011 17:29
Серьёзный Problem ! Soloveyka Накопители 13 18.08.2010 14:00
Как включить Windows Problem Reporting ? anton682 Любые вопросы от новичков 3 22.04.2010 12:54
Windows XP выдает ошибку: A problem has been detected and windows... Как устранить? DEB4EHKA Любые вопросы от новичков 2 10.03.2009 23:23
Сообщение: A problem has been detected and windows has been shut down... dimazz79 Накопители 10 26.07.2008 19:09
Problem Solving Flowchart Vladimir the Red Sunny Юмор 7 25.01.2008 12:47
Problem AD20 Prolog 19 29.12.2006 10:29
Problem with Tablespace SYSAUX Kim_X Oracle 0 05.11.2006 14:07
Big problem с запросом к бд !!! vipper PHP 1 16.03.2004 11:21
Sound Card problem как исправить ошибки Anonymous Железо. Написание драйверов 0 29.07.2003 18:48
PostgreSQL + Windows +VC6 как исправить ошибки Anonymous PostgreSQL 0 20.05.2003 19:23



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов