Эта библиотека, похоже, позволяет проверять отдельные элементы. Просто привяжите событие click к своей кнопке и попробуйте следующее:
$("#myform").validate().element("#i1");
Примеры здесь:
http://docs.jquery.com/Plugins/Validation/ Оценщик / элемент # элемент
Получение имени файла без расширения:
import os
print(os.path.splitext("path_to_file")[0])
Что касается вашей проблемы с импортом, вы решаете его следующим образом:
from os.path import basename
# now you can call it directly with basename
print(basename("/a/b/c.txt"))
import os
list = []
def getFileName( path ):
for file in os.listdir(path):
#print file
try:
base=os.path.basename(file)
splitbase=os.path.splitext(base)
ext = os.path.splitext(base)[1]
if(ext):
list.append(base)
else:
newpath = path+"/"+file
#print path
getFileName(newpath)
except:
pass
return list
getFileName("/home/weexcel-java3/Desktop/backup")
print list
Читаемая версия с использованием Pathlib
в Python 3.4 +
from pathlib import Path
Path('/root/dir/sub/file.ext').stem
Будет напечатана:
file
blockquote>Если путь может быть символической ссылкой, добавьте
resolve()
Path('/root/dir/sub/file.ext').resolve().stem
Мы могли бы сделать небольшую магию split
/ pop
, как показано здесь ( https://stackoverflow.com/a/424006/1250044 ), чтобы извлечь имя файла (в соответствии с окнами и POSIX).
def getFileNameWithoutExtension(path):
return path.split('\\').pop().split('/').pop().rsplit('.', 1)[0]
getFileNameWithoutExtension('/path/to/file-0.0.1.ext')
# => file-0.0.1
getFileNameWithoutExtension('\\path\\to\\file-0.0.1.ext')
# => file-0.0.1
Но даже когда я импортирую os, я не могу назвать его path.basename. Можно ли называть это как напрямую как basename?
blockquote>
import os
, а затем использоватьos.path.basename
import
ingos
не означает вы можете использоватьos.foo
без ссылки наos
.
os.path.splitext () не будет работать, если в расширении есть несколько точек.
Например, images.tar.gz
>>> import os
>>> file_path = '/home/dc/images.tar.gz'
>>> file_name = os.path.basename(file_path)
>>> print os.path.splitext(file_name)[0]
images.tar
Вы можете просто найдите индекс первой точки в базовом имени и затем нарежьте базовое имя, чтобы получить только имя файла без расширения.
>>> import os
>>> file_path = '/home/dc/images.tar.gz'
>>> file_name = os.path.basename(file_path)
>>> index_of_dot = file_name.index('.')
>>> file_name_without_extension = file_name[:index_of_dot]
>>> print file_name_without_extension
images
@ IceAdor ссылается на rsplit в комментарии к решению @ user2902201. rsplit - это самое простое решение, поддерживающее несколько периодов.
Здесь написано:
file = 'my.report.txt'
print file.rsplit('.', 1)[0]
my.report
Для удобства простая функция, обертывающая два метода из os.path
:
def filename(path):
"""Return file name without extension from path.
See https://docs.python.org/3/library/os.path.html
"""
import os.path
b = os.path.split(path)[1] # path, *filename*
f = os.path.splitext(b)[0] # *file*, ext
#print(path, b, f)
return f
Протестировано с Python 3.5.
https://docs.python.org/3/library/os.path.html
В python 3 pathlib «Модуль pathlib предлагает объекты пути высокого уровня «. поэтому
>>> from pathlib import Path
>>> p = Path("/a/b/c.txt")
>>> print(p.with_suffix(''))
\a\b\c
>>> print(p.stem)
c
Просто сканируйте его:
>>> import os
>>> base=os.path.basename('/root/dir/sub/file.ext')
>>> base
'file.ext'
>>> os.path.splitext(base)
('file', '.ext')
>>> os.path.splitext(base)[0]
'file'
самый простой способ разрешить это -
import ntpath
print('Base name is ',ntpath.basename('/path/to/the/file/'))
, это экономит ваше время и вычислительные затраты.
Процедура с несколькими расширениями. Работает для путей str
и unicode
. Работает в Python 2 и 3.
import os
def file_base_name(file_name):
if '.' in file_name:
separator_index = file_name.index('.')
base_name = file_name[:separator_index]
return base_name
else:
return file_name
def path_base_name(path):
file_name = os.path.basename(path)
return file_base_name(file_name)
Поведение:
>>> path_base_name('file')
'file'
>>> path_base_name(u'file')
u'file'
>>> path_base_name('file.txt')
'file'
>>> path_base_name(u'file.txt')
u'file'
>>> path_base_name('file.tar.gz')
'file'
>>> path_base_name('file.a.b.c.d.e.f.g')
'file'
>>> path_base_name('relative/path/file.ext')
'file'
>>> path_base_name('/absolute/path/file.ext')
'file'
>>> path_base_name('Relative\\Windows\\Path\\file.txt')
'file'
>>> path_base_name('C:\\Absolute\\Windows\\Path\\file.txt')
'file'
>>> path_base_name('/path with spaces/file.ext')
'file'
>>> path_base_name('C:\\Windows Path With Spaces\\file.txt')
'file'
>>> path_base_name('some/path/file name with spaces.tar.gz.zip.rar.7z')
'file name with spaces'
Для полноты использования здесь pathlib
решение для python 3.2 +:
from pathlib import Path
print(Path(your_path).resolve().stem)
import os
path = "a/b/c/abc.txt"
print os.path.splitext(os.path.basename(path))[0]
import os
filename = C:\\Users\\Public\\Videos\\Sample Videos\\wildlife.wmv
Это возвращает filename
без extension
(C: \ Users \ Public \ Videos \ Sample Videos \ wildlife)
temp = os.path.splitext(filename)[0]
Теперь вы можете получить только filename
из темпа с помощью
os.path.basename(temp) #this returns just the filename (wildlife)
Попробуйте следующее:
#If you're using linux
>>> filePath = "/root/Videos/video.mp4"
#If you're using windows
>>> filePath = "C:/Users/user/Videos/video.mp4"
>>> fileName = filePath.split("/")[-1]
>>> print(fileName)
video.mp4
Он работает с python 2 и python 3
Подумал, что я бы выбрал вариант использования os.path.splitext без необходимости использования индексации массива.
Функция всегда возвращает пару (root, ext)
, поэтому она безопасна в использовании:
root, ext = os.path.splitext(path)
Пример:
>>> import os
>>> path = 'my_text_file.txt'
>>> root, ext = os.path.splitext(path)
>>> root
'my_text_file'
>>> ext
'.txt'
>>> print os.path.splitext(os.path.basename("hemanth.txt"))[0]
hemanth
Если вы хотите сохранить путь к файлу и просто удалить расширение
>>> file = '/root/dir/sub.exten/file.data.1.2.dat'
>>> print ('.').join(file.split('.')[:-1])
/root/dir/sub.exten/file.data.1.2
В системе Windows я также использовал префикс drivername, например:
>>> s = 'c:\\temp\\akarmi.txt'
>>> print(os.path.splitext(s)[0])
c:\temp\akarmi
Так как мне не нужна буква диска или имя каталога, я использую:
>>> print(os.path.splitext(os.path.basename(s))[0])
akarmi