我正在尝试从文件名中提取电影元数据(标题和年份)。
名称模式不是标准的,但也不是随机的,所以我试图涵盖尽可能多的情况。
为了给您一个想法,这是文件名的示例:
samples = ['The Movie Title.avi',
'The Movie Title DVDRIP. Useless.info.avi',
'The Movie Title [2005].avi',
'The Movie Title (2005) [Useless.info].avi',
'The Movie Title 2005 H264 DVDRip Useless-Info.avi',
'The Movie Title 2005 XviD Useless info.avi',
'The Movie Title {2005} DVDRIP. UselessInfo.avi',
'The.Movie.Title.2005.Useless.info.avi',
'[Useless.info]_The.Movie.Title.2005.Useless.avi']
Run Code Online (Sandbox Code Playgroud)
任何地方都有UselessInfo它是因为写的东西可能有任何东西并且不能用于获取信息(从文件到文件的更改)。另请注意,这'The Movie Title'可能是带有数字或非字母字符的内容,例如:The Movie Title 2 - The Return'例如。
预期的输出应该是一个字典,如:
metadata = {'title': 'The Movie Title', 'year': '2005'}
Run Code Online (Sandbox Code Playgroud)
现在我正在使用一串 regexp,但我不知道有更好的方法来做到这一点。
我对Python很陌生,并且对于你能做什么和不能用列表做些什么感到困惑.我有两个要比较的列表,并以二进制格式返回匹配和非匹配元素.List1长度恒定,而长度List2不同(但总是短于List1).
例如:
List1 = ['dog', 'cat', 'pig', 'donkey']
List2 = ['dog', 'cat', 'donkey']
Run Code Online (Sandbox Code Playgroud)
需要输出:
List3 = [1, 1, 0, 1]
Run Code Online (Sandbox Code Playgroud)
我到目前为止的代码是:
def match_nonmatch(List1, List2):
List3 = []
for i in range(len(List1)):
for j in range(len(List2)):
if List1[i] == List2[j]:
List3.append(1)
else:
List3.append(0)
return List3
Run Code Online (Sandbox Code Playgroud)
我可以在比较列表时返回匹配项,但是当我包含上面显示的else语句以返回不匹配时,我最终会得到一个比它应该更长的列表.例如,当我使用比较60个项目的列表时,我得到一个包含3600个项目而不是60个项目的列表.
我很感激,如果有人可以向我解释我的代码目前的问题,并建议我如何修改代码,以便它做我想要的.
我试图谷歌一些关于它的东西.为什么非数据描述符适用于旧式类?
Docs说它们不应该:
" 请注意,描述符只能用于新的样式对象或类(子类object()或子类type()). "
class Descriptor(object):
def __init__(self):
self.x = 1
def __get__(self, obj, cls=None):
return self.x
class A:
x = Descriptor()
a = A()
a.x
>>> 1
Run Code Online (Sandbox Code Playgroud)
谢谢.
我需要一点导航控制器问题的帮助.
我有navigationController4 ViewControllers推.推送的最后一个vc进一步提供了ViewController模态.模态ViewController提出了一个ActionSheet.根据用户的回答,我要么ViewController仅解除模态,要么我想回到根目录ViewController.
在ViewController提出的模态中,我有:
- (void) dismissGameReport
{
[[self delegate] GameReportModalWillBeDismissed:modalToPopToRoot];
}
Run Code Online (Sandbox Code Playgroud)
在最后ViewController推入navigationController堆栈我有:
- (void)GameReportModalWillBeDismissed: (BOOL)popToRoot;
{
if (popToRoot)
{
[self.navigationController popToRootViewControllerAnimated:NO];
}
else
{
[self dismissModalViewControllerAnimated:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
解雇模态视图控制器工作正常.然而,
[self.navigationController popToRootViewControllerAnimated:NO];
Run Code Online (Sandbox Code Playgroud)
不会导致root ViewController显示其视图.添加一些日志信息我看到在self.navigationController正确弹出到堆栈的消息之后,执行依次继续.屏幕仍然显示模态ViewController的视图.
作为一种解决方法,我尝试总是解雇模态视图控制器,并在ViewWillAppear方法中有popToRootAnimated消息.没有不同.仍会弹出一堆控制器,但屏幕会继续显示我的模态视图控制器的视图,并继续按顺序执行.
有人可以帮帮我吗?
您好我试图在一行中编写这些python行,但由于代码正在进行字典修改而出现一些错误.
for i in range(len(string)):
if string[i] in dict:
dict[string[i]] += 1
Run Code Online (Sandbox Code Playgroud)
我相信的一般语法
abc = [i for i in len(x) if x[i] in array]
Run Code Online (Sandbox Code Playgroud)
考虑到我在字典中添加1值,有人可以告诉我这是如何工作的
谢谢
我正在 Django 网站上工作,应该可以选择包含用户提供的成分的烹饪食谱。简而言之,该网站的理念是“你可以用冰箱里的食物制作东西”。
所以我做了2个模型
class Recipe (models.Model):
name = models.CharField(max_length=255)
ingredients = models.ManyToManyField(Ingredient)
class Ingredient (models.Model):
name = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)
让我们想象一下,我有 as list ['egg','bread','meat','onion']。
现在我需要选择所有可以从成分列表中制作的食谱。问题是,某些食谱可能只有列表中的某些成分。
例如:
所以我的问题是:是否可以从配料列表中选择所有可以制作的食谱,然后从配料列表中选择最接近的食谱+商店中的一些配料?
例如:recipes 有 4 个元素中的 3 个,因此我们将其添加到结果中。
为了重新构思混乱,我编辑了这个问题:
one.py
import threading
count = 5
dev = threading.Thread(name='dev', target=dev,args=(workQueue,count,))
dev.setDaemon(True)
dev.start()
workQueue = Queue.Queue(10)
queueLock.acquire()
workQueue.put(word)
queueLock.release()
count = 3
time.sleep(2)
count = 5
Run Code Online (Sandbox Code Playgroud)
但我在这里的困惑是我能够在线程之间放入和获取队列中的值,但是在计数的情况下它不会反映出来.
这是为什么?
我实际上错过了什么意思?
class dev ( threading.Thread ):
def test(self):
while 1:
print count
print self.EPP_Obj
queueLock.acquire()
if not self.workQueue.empty():
data = self.workQueue.get()
print data
queueLock.release()
else:
queueLock.release()
def __init__(self, workQueue, EPP_Obj):
threading.Thread.__init__(self)
self.workQueue = workQueue
self.EPP_Obj = EPP_Obj
Run Code Online (Sandbox Code Playgroud) 我正在尝试为 django 应用程序构建一个包,但不包括所有测试模块。我试过设置
exclude = ["*.tests", "*.tests.*", "tests.*", "tests"]
Run Code Online (Sandbox Code Playgroud)
onfind_packages并定义 a MANIFEST.in,但测试总是被编译并包含在包中。
有什么线索吗?
有没有办法在Python中连接数字,让我说我有代码
print(2, 1)
Run Code Online (Sandbox Code Playgroud)
我希望它打印21,而不是2 1如果我使用"+",它打印3.有没有办法做到这一点?
我正在尝试使用Django开发一个网站,遵循各种指南,文档和谷歌.我有一些平面页面设置需要访问图像/ CSS文件.
我的settings.py文件如下所示:
# Django settings for FirstBlog project.
DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = (
# ('Your Name', 'your_email@example.com'),
)
MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'db', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': …Run Code Online (Sandbox Code Playgroud) python ×9
django ×2
class ×1
descriptor ×1
html ×1
ios4 ×1
model ×1
mysql ×1
objective-c ×1
optimization ×1
python-3.x ×1
regex ×1
setuptools ×1
sql ×1
string ×1