2016-09-25 3 views
-1

Я хочу, чтобы переместить и переименовать файл с именем malicious.txt, расположенные на пути /home/dina/A на новое место /home/dina/b с новым именем на основе apkName (например a.apk или b.apk, и т.д.) Я хочу окончательное название, чтобы иметь .json расширения вместо .apk расширения - например, a.json и b.jsonКак изменить имя и расширение имени файла в Python?

Я пробовал:

import os 
os.rename("malicious.txt",apkName) 

Но он удаляет malicious.txt без появления каких-либо других файлов.

+0

Это намного лучше, если вы можете написать несколько примеров файлов (например, my/path/file1.txt [enter] my/path/file2.txt) до и после запуска скрипта. Затем люди могут ясно видеть, что вы хотите сделать, а что не так с вашим скриптом. – fronthem

ответ

0

Следующая следует переименовать «malicious.txt», чтобы быть имя apkfile с расширением «.json»

import os 
apkName = "a.apk" 
apkFullpath = os.path.join(os.path.sep,"home","dina","a",apkName) 
jsonName = os.path.splitext(apkName)[0]+".json" 
jsonFullpath = os.path.join(os.path.sep,"home","dina","b",jsonName) 
os.rename("malicious.txt",jsonName) 

Обратите внимание, что вы можете переименовать имя файла только один раз (после того, как в первый раз переименования, вы не сможет получить доступ к старому имени)

для получения дополнительной информации о os.path.join и os.path.sep

https://docs.python.org/2/library/os.path.html

os.path.join (путь, * пути)

Регистрация одну или более компонентов пути разумно. Возвращаемое значение представляет собой конкатенацию пути и любых членов * путей с ровно одним разделителем каталога (os.sep) после каждой непустой части, кроме последней, что означает, что результат будет заканчиваться только в разделителе, если последняя часть пуста , Если компонент является абсолютным путем, все предыдущие компоненты выбрасываются, и соединение продолжается от компонента абсолютного пути.

В Windows буква диска не сбрасывается, когда встречается компонент абсолютного пути (например, r '\ foo'). Если компонент содержит букву диска, все предыдущие компоненты выбрасываются, и буква диска сбрасывается. Обратите внимание, что поскольку для каждого диска существует текущий каталог, os.path.join («c:», «foo») представляет путь относительно текущего каталога на диске C: (c: foo), а не c: \ foo ,

+0

apkname уже называется a.apk Я хочу изменить malicious.txt на a.json, поэтому не знаю, как написать apkname, который вызвал (a), только без его расширения, а затем добавить (.json) в качестве нового расширения – dina

+0

@ dina - см. мой обновленный ответ. jsonName берет первую часть apkName («a») и добавляет расширение «.json», поэтому «a.apk» становится «a.json», – Yaron

Смежные вопросы