Как изменить расширение файла python

Suppose from index.py with CGI, I have post file foo.fasta to display file. I want to change foo.fasta's file extension to be foo.aln in display file. How can I do it?

Suppose from index.py with CGI, I have post file foo.fasta to display file. I want to change foo.fasta‘s file extension to be foo.aln in display file. How can I do it?

cs95's user avatar

cs95

362k92 gold badges671 silver badges726 bronze badges

asked May 24, 2010 at 20:19

MysticCodes's user avatar

1

An elegant way using pathlib.Path:

from pathlib import Path
p = Path('mysequence.fasta')
p.rename(p.with_suffix('.aln'))

Jean-François Corbett's user avatar

answered Nov 28, 2017 at 9:42

Nikita Malyavin's user avatar

Nikita MalyavinNikita Malyavin

1,7691 gold badge11 silver badges10 bronze badges

4

os.path.splitext(), os.rename()

for example:

# renamee is the file getting renamed, pre is the part of file name before extension and ext is current extension
pre, ext = os.path.splitext(renamee)
os.rename(renamee, pre + new_extension)

RinkyPinku's user avatar

answered May 24, 2010 at 20:23

Ignacio Vazquez-Abrams's user avatar

5

import os
thisFile = "mysequence.fasta"
base = os.path.splitext(thisFile)[0]
os.rename(thisFile, base + ".aln")

Where thisFile = the absolute path of the file you are changing

amarillion's user avatar

amarillion

24.1k15 gold badges67 silver badges80 bronze badges

answered Sep 9, 2011 at 14:14

FryDay's user avatar

FryDayFryDay

1,0471 gold badge7 silver badges10 bronze badges

2

Use this:

os.path.splitext("name.fasta")[0]+".aln"

And here is how the above works:

The splitext method separates the name from the extension creating a tuple:

os.path.splitext("name.fasta")

the created tuple now contains the strings «name» and «fasta».
Then you need to access only the string «name» which is the first element of the tuple:

os.path.splitext("name.fasta")[0]

And then you want to add a new extension to that name:

os.path.splitext("name.fasta")[0]+".aln"

answered Feb 11, 2015 at 15:02

multigoodverse's user avatar

multigoodversemultigoodverse

7,28817 gold badges61 silver badges103 bronze badges

As AnaPana mentioned pathlib is more new and easier in python 3.4 and there is new with_suffix method that can handle this problem easily:

from pathlib import Path
new_filename = Path(mysequence.fasta).with_suffix('.aln')

answered May 13, 2020 at 10:23

Mahdi Saravi's user avatar

Using pathlib and preserving full path:

from pathlib import Path
p = Path('/User/my/path')
new_p = Path(p.parent.as_posix() + '/' + p.stem + '.aln')

answered Aug 20, 2018 at 18:13

PollPenn's user avatar

PollPennPollPenn

7031 gold badge7 silver badges17 bronze badges

1

Sadly, I experienced a case of multiple dots on file name that splittext does not worked well… my work around:

file = r'C:Docsfile.2020.1.1.xls'
ext = '.'+ os.path.realpath(file).split('.')[-1:][0]
filefinal = file.replace(ext,'')
filefinal = file + '.zip'
os.rename(file ,filefinal)

answered Aug 4, 2020 at 13:16

Hugo Vares's user avatar

Hugo VaresHugo Vares

8977 silver badges7 bronze badges

>> file = r'C:Docsfile.2020.1.1.xls'
>> ext = '.'+ os.path.realpath(file).split('.')[-1:][0]
>> filefinal = file.replace(ext,'.zip')
>> os.rename(file ,filefinal) 

Bad logic for repeating extension, sample: ‘C:Docs.xls_aaa.xls.xls’

answered Aug 10, 2020 at 23:20

uDev's user avatar

uDevuDev

213 bronze badges

Suppose from index.py with CGI, I have post file foo.fasta to display file. I want to change foo.fasta‘s file extension to be foo.aln in display file. How can I do it?

cs95's user avatar

cs95

362k92 gold badges671 silver badges726 bronze badges

asked May 24, 2010 at 20:19

MysticCodes's user avatar

1

An elegant way using pathlib.Path:

from pathlib import Path
p = Path('mysequence.fasta')
p.rename(p.with_suffix('.aln'))

Jean-François Corbett's user avatar

answered Nov 28, 2017 at 9:42

Nikita Malyavin's user avatar

Nikita MalyavinNikita Malyavin

1,7691 gold badge11 silver badges10 bronze badges

4

os.path.splitext(), os.rename()

for example:

# renamee is the file getting renamed, pre is the part of file name before extension and ext is current extension
pre, ext = os.path.splitext(renamee)
os.rename(renamee, pre + new_extension)

RinkyPinku's user avatar

answered May 24, 2010 at 20:23

Ignacio Vazquez-Abrams's user avatar

5

import os
thisFile = "mysequence.fasta"
base = os.path.splitext(thisFile)[0]
os.rename(thisFile, base + ".aln")

Where thisFile = the absolute path of the file you are changing

amarillion's user avatar

amarillion

24.1k15 gold badges67 silver badges80 bronze badges

answered Sep 9, 2011 at 14:14

FryDay's user avatar

FryDayFryDay

1,0471 gold badge7 silver badges10 bronze badges

2

Use this:

os.path.splitext("name.fasta")[0]+".aln"

And here is how the above works:

The splitext method separates the name from the extension creating a tuple:

os.path.splitext("name.fasta")

the created tuple now contains the strings «name» and «fasta».
Then you need to access only the string «name» which is the first element of the tuple:

os.path.splitext("name.fasta")[0]

And then you want to add a new extension to that name:

os.path.splitext("name.fasta")[0]+".aln"

answered Feb 11, 2015 at 15:02

multigoodverse's user avatar

multigoodversemultigoodverse

7,28817 gold badges61 silver badges103 bronze badges

As AnaPana mentioned pathlib is more new and easier in python 3.4 and there is new with_suffix method that can handle this problem easily:

from pathlib import Path
new_filename = Path(mysequence.fasta).with_suffix('.aln')

answered May 13, 2020 at 10:23

Mahdi Saravi's user avatar

Using pathlib and preserving full path:

from pathlib import Path
p = Path('/User/my/path')
new_p = Path(p.parent.as_posix() + '/' + p.stem + '.aln')

answered Aug 20, 2018 at 18:13

PollPenn's user avatar

PollPennPollPenn

7031 gold badge7 silver badges17 bronze badges

1

Sadly, I experienced a case of multiple dots on file name that splittext does not worked well… my work around:

file = r'C:Docsfile.2020.1.1.xls'
ext = '.'+ os.path.realpath(file).split('.')[-1:][0]
filefinal = file.replace(ext,'')
filefinal = file + '.zip'
os.rename(file ,filefinal)

answered Aug 4, 2020 at 13:16

Hugo Vares's user avatar

Hugo VaresHugo Vares

8977 silver badges7 bronze badges

>> file = r'C:Docsfile.2020.1.1.xls'
>> ext = '.'+ os.path.realpath(file).split('.')[-1:][0]
>> filefinal = file.replace(ext,'.zip')
>> os.rename(file ,filefinal) 

Bad logic for repeating extension, sample: ‘C:Docs.xls_aaa.xls.xls’

answered Aug 10, 2020 at 23:20

uDev's user avatar

uDevuDev

213 bronze badges

Suppose from index.py with CGI, I have post file foo.fasta to display file. I want to change foo.fasta‘s file extension to be foo.aln in display file. How can I do it?

cs95's user avatar

cs95

362k92 gold badges671 silver badges726 bronze badges

asked May 24, 2010 at 20:19

MysticCodes's user avatar

1

An elegant way using pathlib.Path:

from pathlib import Path
p = Path('mysequence.fasta')
p.rename(p.with_suffix('.aln'))

Jean-François Corbett's user avatar

answered Nov 28, 2017 at 9:42

Nikita Malyavin's user avatar

Nikita MalyavinNikita Malyavin

1,7691 gold badge11 silver badges10 bronze badges

4

os.path.splitext(), os.rename()

for example:

# renamee is the file getting renamed, pre is the part of file name before extension and ext is current extension
pre, ext = os.path.splitext(renamee)
os.rename(renamee, pre + new_extension)

RinkyPinku's user avatar

answered May 24, 2010 at 20:23

Ignacio Vazquez-Abrams's user avatar

5

import os
thisFile = "mysequence.fasta"
base = os.path.splitext(thisFile)[0]
os.rename(thisFile, base + ".aln")

Where thisFile = the absolute path of the file you are changing

amarillion's user avatar

amarillion

24.1k15 gold badges67 silver badges80 bronze badges

answered Sep 9, 2011 at 14:14

FryDay's user avatar

FryDayFryDay

1,0471 gold badge7 silver badges10 bronze badges

2

Use this:

os.path.splitext("name.fasta")[0]+".aln"

And here is how the above works:

The splitext method separates the name from the extension creating a tuple:

os.path.splitext("name.fasta")

the created tuple now contains the strings «name» and «fasta».
Then you need to access only the string «name» which is the first element of the tuple:

os.path.splitext("name.fasta")[0]

And then you want to add a new extension to that name:

os.path.splitext("name.fasta")[0]+".aln"

answered Feb 11, 2015 at 15:02

multigoodverse's user avatar

multigoodversemultigoodverse

7,28817 gold badges61 silver badges103 bronze badges

As AnaPana mentioned pathlib is more new and easier in python 3.4 and there is new with_suffix method that can handle this problem easily:

from pathlib import Path
new_filename = Path(mysequence.fasta).with_suffix('.aln')

answered May 13, 2020 at 10:23

Mahdi Saravi's user avatar

Using pathlib and preserving full path:

from pathlib import Path
p = Path('/User/my/path')
new_p = Path(p.parent.as_posix() + '/' + p.stem + '.aln')

answered Aug 20, 2018 at 18:13

PollPenn's user avatar

PollPennPollPenn

7031 gold badge7 silver badges17 bronze badges

1

Sadly, I experienced a case of multiple dots on file name that splittext does not worked well… my work around:

file = r'C:Docsfile.2020.1.1.xls'
ext = '.'+ os.path.realpath(file).split('.')[-1:][0]
filefinal = file.replace(ext,'')
filefinal = file + '.zip'
os.rename(file ,filefinal)

answered Aug 4, 2020 at 13:16

Hugo Vares's user avatar

Hugo VaresHugo Vares

8977 silver badges7 bronze badges

>> file = r'C:Docsfile.2020.1.1.xls'
>> ext = '.'+ os.path.realpath(file).split('.')[-1:][0]
>> filefinal = file.replace(ext,'.zip')
>> os.rename(file ,filefinal) 

Bad logic for repeating extension, sample: ‘C:Docs.xls_aaa.xls.xls’

answered Aug 10, 2020 at 23:20

uDev's user avatar

uDevuDev

213 bronze badges

  • Общие вопросы о библиотеке

    • Как найти модуль или приложение для выполнения задачи X?
    • Где находится исходный файл math.py (socket.py,regex.py и т.д.)?
    • Как сделать скрипт Python исполняемым на Unix?
    • Существует ли пакет curses/termcap для Python?
    • Есть ли в Python эквивалент onexit()языка C?
    • Почему мои обработчики сигналов не работают?
  • Common tasks

    • Как протестировать программу или компонент Python?
    • Как создать документацию из строк doc?
    • Как получить одно нажатие клавиши за один раз?
  • Threads

    • Как программировать с использованием потоков?
    • Ни один из моих потоков не запускается:почему?
    • Как распределить работу между несколькими рабочими потоками?
    • Какие виды мутации глобальных значений безопасны для потоков?
    • Разве мы не можем избавиться от блокировки глобального переводчика?
  • Вход и выход

    • Как удалить файл? (И другие вопросы о файлах…)
    • Как скопировать файл?
    • Как читать (или записывать)двоичные данные?
    • Я не могу использовать os.read()на трубе,созданной с помощью os.popen();почему?
    • Как получить доступ к последовательному порту (RS232)?
    • Почему закрытие sys.stdout (stdin,stderr)на самом деле не закрывает его?
  • Network/Internet Programming

    • Какие инструменты WWW существуют для Python?
    • Как я могу имитировать отправку формы CGI (METHOD=POST)?
    • Какой модуль следует использовать для помощи в генерации HTML?
    • Как отправить почту из сценария Python?
    • Как избежать блокировки в методе connect()сокета?
  • Databases

    • Есть ли в Python интерфейсы к пакетам баз данных?
    • Как реализовать постоянные объекты в Python?
  • Математика и числительные

    • Как генерировать случайные числа в Python?

Общие вопросы о библиотеке

Как найти модуль или приложение для выполнения задачи X?

Проверьте Справочник по библиотеке , чтобы узнать, есть ли соответствующий модуль стандартной библиотеки. (В конце концов вы узнаете, что есть в стандартной библиотеке, и сможете пропустить этот шаг.)

Для сторонних пакетов выполните поиск в индексе пакетов Python или попробуйте Google или другую поисковую систему. Поиск «Python» плюс ключевое слово или два для интересующей вас темы обычно находит что-то полезное.

Где находится исходный файл math.py (socket.py,regex.py и т.д.)?

Если вы не можете найти исходный файл для модуля, это может быть встроенный или динамически загружаемый модуль, реализованный на C, C++ или другом скомпилированном языке. В этом случае у вас может не быть исходного файла или это может быть что-то вроде mathmodule.c где- то в исходном каталоге C (не на пути Python).

В Python существует (по крайней мере)три вида модулей:

  1. модули,написанные на языке Python (.py);
  2. модули,написанные на языке C и динамически загружаемые (.dll,.pyd,.so,.sl и т.д.);
  3. модули,написанные на языке C и связанные с интерпретатором;чтобы получить их список,введите:

    import sys
    print(sys.builtin_module_names)
    

Как сделать скрипт Python исполняемым на Unix?

Вам нужно сделать две вещи: режим файла сценария должен быть исполняемым, а первая строка должна начинаться с #! за которым следует путь интерпретатора Python.

Первый выполняется путем выполнения chmod +x scriptfile или, возможно, файла сценария chmod 755 scriptfile .

Второе можно сделать несколькими способами.Самый простой способ-написать

#!/usr/local/bin/python

в качестве первой строки вашего файла,используя имя пути к месту установки интерпретатора Python на вашей платформе.

Если вы хотите, чтобы скрипт не зависел от того, где находится интерпретатор Python, вы можете использовать программу env . Почти все варианты Unix поддерживают следующее, предполагая, что интерпретатор Python находится в каталоге пользователя PATH :

#!/usr/bin/env python

Не делайте этого для сценариев CGI. Переменная PATH для сценариев CGI часто очень минимальна, поэтому вам нужно использовать фактический абсолютный путь интерпретатора.

Иногда среда пользователя настолько заполнена, что программа /usr/bin/env дает сбой; или вообще нет программы env. В этом случае вы можете попробовать следующий лайфхак (благодаря Alex Rezinsky):

#! /bin/sh
""":"
exec python $0 ${1+"$@"}
"""

Небольшим недостатком является то,что это определяет строку __doc__скрипта.Однако это можно исправить,добавив

__doc__ = """...Whatever..."""

Существует ли пакет curses/termcap для Python?

Для вариантов Unix: Стандартный исходный код Python поставляется с модулем curses в подкаталоге Modules , хотя по умолчанию он не скомпилирован. (Обратите внимание, что это недоступно в дистрибутиве Windows — для Windows нет модуля curses.)

Модуль curses поддерживает основные функции curses, а также множество дополнительных функций из ncurses и SYSV curses, таких как цвет, поддержка альтернативного набора символов, пэды и поддержка мыши. Это означает, что модуль не совместим с операционными системами, имеющими только проклятия BSD, но, похоже, в настоящее время нет поддерживаемых операционных систем, подпадающих под эту категорию.

Есть ли в Python эквивалент onexit()языка C?

Модуль atexit предоставляет функцию регистрации, аналогичную функции onexit() языка C.

Почему мои обработчики сигналов не работают?

Наиболее распространенная проблема заключается в том,что обработчик сигналов объявляется с неправильным списком аргументов.Он вызывается как

handler(signum, frame)

поэтому он должен быть объявлен с двумя параметрами:

def handler(signum, frame):
    ...

Common tasks

Как протестировать программу или компонент Python?

Python поставляется с двумя средами тестирования. Модуль doctest находит примеры в строках документации для модуля и запускает их, сравнивая вывод с ожидаемым выводом, указанным в строке документации.

Модуль unittest — это более изящная среда тестирования, созданная по образцу сред тестирования Java и Smalltalk.

Чтобы облегчить тестирование,вы должны использовать в своей программе хороший модульный дизайн.В вашей программе почти вся функциональность должна быть заключена в функции или методы класса-и это иногда имеет удивительный и восхитительный эффект,заставляя программу работать быстрее (потому что доступ к локальным переменным быстрее,чем к глобальным).Кроме того,программа не должна зависеть от мутирующих глобальных переменных,поскольку это значительно усложняет тестирование.

Глобальная основная логика» вашей программы может быть такой простой,как

if __name__ == "__main__":
    main_logic()

в нижней части главного модуля вашей программы.

После того,как ваша программа организована как поддающаяся обработке коллекция функций и поведений классов,вы должны написать тестовые функции,которые выполняют эти поведения.С каждым модулем может быть связан набор тестов,автоматизирующий последовательность тестов.Это звучит как большой объем работы,но поскольку Python настолько лаконичен и гибок,это удивительно просто.Вы можете сделать кодирование гораздо более приятным и увлекательным,если будете писать свои тестовые функции параллельно с «производственным кодом»,поскольку это облегчает поиск ошибок и даже недостатков дизайна на ранних этапах.

«Вспомогательные модули»,которые не предназначены для того,чтобы быть основным модулем программы,могут включать самотестирование модуля.

if __name__ == "__main__":
    self_test()

Даже программы,взаимодействующие со сложными внешними интерфейсами,можно тестировать,когда внешние интерфейсы недоступны,используя «фальшивые» интерфейсы,реализованные в Python.

Как создать документацию из строк doc?

Модуль pydoc может создавать HTML из строк документа в исходном коде Python. Альтернативой для создания документации API исключительно из строк документации является epydoc . Sphinx также может включать содержимое строки документации.

Как получить одно нажатие клавиши за один раз?

Для вариантов Unix существует несколько решений.Это легко сделать с помощью curses,но curses-довольно большой модуль,который нужно изучить.

Threads

Как программировать с использованием потоков?

Обязательно используйте модуль threading передачи, а не модуль _thread . Модуль threading передачи строит удобные абстракции на основе низкоуровневых примитивов, предоставляемых модулем _thread .

Ни один из моих потоков не запускается:почему?

Как только главный поток завершается,все потоки погибают.Ваш главный поток выполняется слишком быстро,не давая потокам времени на выполнение какой-либо работы.

Простое решение-добавить в конец программы sleep,который будет достаточно длинным для завершения всех потоков:

import threading, time

def thread_task(name, n):
    for i in range(n):
        print(name, i)

for i in range(10):
    T = threading.Thread(target=thread_task, args=(str(i), i))
    T.start()

time.sleep(10)  # <---------------------------!

Но теперь (на многих платформах)потоки не выполняются параллельно,а,похоже,выполняются последовательно,один за другим! Причина в том,что планировщик потоков ОС не запускает новый поток,пока предыдущий поток не будет заблокирован.

Простым исправлением является добавление крошечного сна в начало функции run:

def thread_task(name, n):
    time.sleep(0.001)  # <--------------------!
    for i in range(n):
        print(name, i)

for i in range(10):
    T = threading.Thread(target=thread_task, args=(str(i), i))
    T.start()

time.sleep(10)

Вместо того, чтобы пытаться угадать хорошее значение задержки для time.sleep() , лучше использовать какой-то механизм семафора. Одна из идей состоит в том, чтобы использовать модуль queue для создания объекта очереди, позволяя каждому потоку добавлять маркер в очередь по завершении и позволять основному потоку считывать из очереди столько маркеров, сколько существует потоков.

Как распределить работу между несколькими рабочими потоками?

Самый простой способ — использовать модуль concurrent.futures , особенно класс ThreadPoolExecutor .

Или, если вам нужен точный контроль над алгоритмом диспетчеризации, вы можете написать свою собственную логику вручную. Используйте модуль queue , чтобы создать очередь, содержащую список заданий. Класс Queue поддерживает список объектов и имеет .put(obj) , который добавляет элементы в очередь, и метод .get() для их возврата. Класс позаботится о блокировке, необходимой для того, чтобы каждое задание было выдано ровно один раз.

Вот тривиальный пример:

import threading, queue, time




def worker():
    print('Running worker')
    time.sleep(0.1)
    while True:
        try:
            arg = q.get(block=False)
        except queue.Empty:
            print('Worker', threading.current_thread(), end=' ')
            print('queue empty')
            break
        else:
            print('Worker', threading.current_thread(), end=' ')
            print('running with argument', arg)
            time.sleep(0.5)


q = queue.Queue()


for i in range(5):
    t = threading.Thread(target=worker, name='worker %i' % (i+1))
    t.start()


for i in range(50):
    q.put(i)


print('Main thread sleeping')
time.sleep(5)

При запуске будет получен следующий результат:

Running worker
Running worker
Running worker
Running worker
Running worker
Main thread sleeping
Worker <Thread(worker 1, started 130283832797456)> running with argument 0
Worker <Thread(worker 2, started 130283824404752)> running with argument 1
Worker <Thread(worker 3, started 130283816012048)> running with argument 2
Worker <Thread(worker 4, started 130283807619344)> running with argument 3
Worker <Thread(worker 5, started 130283799226640)> running with argument 4
Worker <Thread(worker 1, started 130283832797456)> running with argument 5
...

Обратитесь к документации модуля для более подробной информации; класс Queue предоставляет многофункциональный интерфейс.


© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/faq/library.html


Python

3.11

  • Часто задаваемые вопросы по Python

    Python Часто задаваемые вопросы Общие вопросы FAQ Программирование Дизайн и история библиотеки Расширение/встраивание Windows Графический интерфейс пользователя «Почему

  • «Почему на моем компьютере установлен Python?» Вопросы-Ответы

    Python-это язык программирования.

  • Какие виды мутации глобальных значений безопасны для потоков?

    Глобальная блокировка интерпретатора (GIL)используется внутри программы,чтобы гарантировать,что только один поток запускает Python VM time.

  • Programming FAQ

    Общие вопросы Основной язык Числа и строки Выполнение Последовательности (кортежи/списки)Объекты Модули Да.

1 / 1 / 0

Регистрация: 16.12.2020

Сообщений: 62

1

09.05.2021, 11:38. Показов 18206. Ответов 29


Делаю из txt в py ,но тхт все равно остается

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

09.05.2021, 11:38

29

Автоматизируй это!

Эксперт Python

6482 / 4175 / 1140

Регистрация: 30.03.2015

Сообщений: 12,333

Записей в блоге: 29

09.05.2021, 11:39

2

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



1



1 / 1 / 0

Регистрация: 16.12.2020

Сообщений: 62

09.05.2021, 11:40

 [ТС]

3

есть у меня текстовый документ с кодом, изменяю его с .txt на .py ,но после этих действий он все равно остается текстовым документом c форматом .txt



0



Автоматизируй это!

Эксперт Python

6482 / 4175 / 1140

Регистрация: 30.03.2015

Сообщений: 12,333

Записей в блоге: 29

09.05.2021, 11:42

4

Aker05, значит как то не так переименовываешь. Используй какой нибудь нотепад++ или пичарм. А еще лучше скопируй содержимое и вставь в файл пи.



1



Нарушитель

Эксперт PythonЭксперт Java

14047 / 8235 / 2485

Регистрация: 21.10.2017

Сообщений: 19,711

09.05.2021, 11:43

5

Welemir1, вангую, добавляет расшиерение .py к.txt-файлу, в винде со скрытыми зарегистрированными расширениями.



2



1 / 1 / 0

Регистрация: 16.12.2020

Сообщений: 62

09.05.2021, 11:52

 [ТС]

6

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

Добавлено через 37 секунд
это как ?



0



Нарушитель

Эксперт PythonЭксперт Java

14047 / 8235 / 2485

Регистрация: 21.10.2017

Сообщений: 19,711

09.05.2021, 11:52

7

Aker05, ебстественно. Винде нужно сказать — чем открывать файл .py



0



1 / 1 / 0

Регистрация: 16.12.2020

Сообщений: 62

09.05.2021, 11:53

 [ТС]

8

ну откроется он, а работать ведь не будет



0



Автоматизируй это!

Эксперт Python

6482 / 4175 / 1140

Регистрация: 30.03.2015

Сообщений: 12,333

Записей в блоге: 29

09.05.2021, 11:55

9

Aker05, а если почитать как запускать питон файлы? установить ИДЕ?



0



1 / 1 / 0

Регистрация: 16.12.2020

Сообщений: 62

09.05.2021, 11:59

 [ТС]

10

через идле сделал чтоб слово выводилось просто, сохраняю на рабочий стол и опять в блокнот превращается………



0



Нарушитель

Эксперт PythonЭксперт Java

14047 / 8235 / 2485

Регистрация: 21.10.2017

Сообщений: 19,711

09.05.2021, 12:00

11

Aker05, давай-ка по пунктам — чего ты хочешь добиться?



0



1 / 1 / 0

Регистрация: 16.12.2020

Сообщений: 62

09.05.2021, 12:05

 [ТС]

12

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



0



Нарушитель

Эксперт PythonЭксперт Java

14047 / 8235 / 2485

Регистрация: 21.10.2017

Сообщений: 19,711

09.05.2021, 12:06

13

Переименуй тотал коммандером. Он показывает зарегистрированные расширения



0



1 / 1 / 0

Регистрация: 16.12.2020

Сообщений: 62

09.05.2021, 12:07

 [ТС]

14

откуда скачать посоветуешь?



0



Нарушитель

Эксперт PythonЭксперт Java

14047 / 8235 / 2485

Регистрация: 21.10.2017

Сообщений: 19,711

09.05.2021, 12:09

15

В гугле забанили?



0



Автоматизируй это!

Эксперт Python

6482 / 4175 / 1140

Регистрация: 30.03.2015

Сообщений: 12,333

Записей в блоге: 29

09.05.2021, 12:09

16

Aker05, не используй всякую ерунду типа идле или сублиме, установи PyCharm



1



Нарушитель

Эксперт PythonЭксперт Java

14047 / 8235 / 2485

Регистрация: 21.10.2017

Сообщений: 19,711

09.05.2021, 12:11

17

Welemir1, вангую, что питон в пат не прописан. Иначе винда зарегистрировала бы расширение.
Наверно.



1



1 / 1 / 0

Регистрация: 16.12.2020

Сообщений: 62

09.05.2021, 12:11

 [ТС]

18

он ругается на меня всегда ,я удалил его) и есть ли кряк где то без вирусов на пичарм?
?



0



Нарушитель

Эксперт PythonЭксперт Java

14047 / 8235 / 2485

Регистрация: 21.10.2017

Сообщений: 19,711

09.05.2021, 12:12

19

Aker05, качай Pycharm Community, он бесплатный



0



1 / 1 / 0

Регистрация: 16.12.2020

Сообщений: 62

09.05.2021, 12:13

 [ТС]

20

lite или powerpack?

Добавлено через 23 секунды
и что такое пат?



0



Предположим из index.py с CGI у меня есть почтовый файл foo.fasta для отображения файла. я хочу изменить foo.fastaрасширение файла должно быть foo.aln в файле отображения. Как мне это сделать?

9 ответы

os.path.splitext(), os.rename()

например:

# renamee is the file getting renamed, pre is the part of file name before extension and ext is current extension
pre, ext = os.path.splitext(renamee)
os.rename(renamee, pre + new_extension)

Создан 01 янв.

Элегантный способ использования pathlib.Путь:

from pathlib import Path
p = Path('mysequence.fasta')
p.rename(p.with_suffix('.aln'))

Создан 28 ноя.

import os
thisFile = "mysequence.fasta"
base = os.path.splitext(thisFile)[0]
os.rename(thisFile, base + ".aln")

Где thisFile = абсолютный путь к изменяемому файлу

ответ дан 14 окт ’13, 16:10

Создан 10 фев.

Используйте это:

os.path.splitext("name.fasta")[0]+".aln"

И вот как это работает:

Метод splitext отделяет имя от расширения, создавая кортеж:

os.path.splitext("name.fasta")

созданный кортеж теперь содержит строки name и fasta. Затем вам нужно получить доступ только к строке «name», которая является первым элементом кортежа:

os.path.splitext("name.fasta")[0]

А затем вы хотите добавить к этому имени новое расширение:

os.path.splitext("name.fasta")[0]+".aln"

ответ дан 05 мар ’15, в 20:03

Как упомянула AnaPana, pathlib более новый и более простой в python 3.4, и есть новый метод with_suffix, который может легко справиться с этой проблемой:

from pathlib import Path
new_filename = Path(mysequence.fasta).with_suffix('.aln')

ответ дан 13 мая ’20, 11:05

Использование pathlib и сохранение полного пути:

from pathlib import Path
p = Path('/User/my/path')
new_p = Path(p.parent.as_posix() + '/' + p.stem + '.aln')

ответ дан 20 авг.

К сожалению, я столкнулся с несколькими точками в имени файла, когда разделенный текст не работал хорошо … моя работа:

file = r'C:Docsfile.2020.1.1.xls'
ext = '.'+ os.path.realpath(file).split('.')[-1:][0]
filefinal = file.replace(ext,'')
filefinal = file + '.zip'
os.rename(file ,filefinal)

ответ дан 26 мар ’21, в 13:03

>> file = r'C:Docsfile.2020.1.1.xls'
>> ext = '.'+ os.path.realpath(file).split('.')[-1:][0]
>> filefinal = file.replace(ext,'.zip')
>> os.rename(file ,filefinal) 

Плохая логика для повторения расширения, пример: ‘C: Docs .xls_aaa.xls.xls’

ответ дан 11 авг.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

python
rename
file-extension

or задайте свой вопрос.

Понравилась статья? Поделить с друзьями:
  • Как изменить расширение файла mac os
  • Как изменить расширение файла heic на jpeg
  • Как изменить расширение файла docx на doc
  • Как изменить расширение у нескольких файлов одновременно
  • Как изменить расширение тхт на бат