小编Rik*_*ggi的帖子

如何从文件名中提取电影名称

我正在尝试从文件名中提取电影元数据(标题和年份)。

名称模式不是标准的,但也不是随机的,所以我试图涵盖尽可能多的情况。
为了给您一个想法,这是文件名的示例:

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 regex

6
推荐指数
2
解决办法
6104
查看次数

查找列表中的匹配项和不匹配项

我对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个项目的列表.

我很感激,如果有人可以向我解释我的代码目前的问题,并建议我如何修改代码,以便它做我想要的.

python

6
推荐指数
3
解决办法
2万
查看次数

具有旧式类的Python描述符

我试图谷歌一些关于它的东西.为什么非数据描述符适用于旧式类?

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)

谢谢.

python class descriptor

6
推荐指数
1
解决办法
164
查看次数

popToRootViewControllerAnimated不显示根视图控制器

我需要一点导航控制器问题的帮助.

我有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消息.没有不同.仍会弹出一堆控制器,但屏幕会继续显示我的模态视图控制器的视图,并继续按顺序执行.

有人可以帮帮我吗?

objective-c uinavigationcontroller ios4

5
推荐指数
1
解决办法
5629
查看次数

计算字符串中char出现次数的最佳方法

您好我试图在一行中编写这些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值,有人可以告诉我这是如何工作的

谢谢

python string optimization performancecounter

5
推荐指数
3
解决办法
4765
查看次数

Django 烹饪食谱网站模型结构

我正在 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 个,因此我们将其添加到结果中。

python mysql sql django model

5
推荐指数
1
解决办法
2032
查看次数

线程和信息传递 - 如何

为了重新构思混乱,我编辑了这个问题:

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)

python python-multithreading

5
推荐指数
1
解决办法
9656
查看次数

如何让“setup.py bdist_egg”忽略特定的源文件?

我正在尝试为 django 应用程序构建一个包,但不包括所有测试模块。我试过设置

exclude = ["*.tests", "*.tests.*", "tests.*", "tests"]
Run Code Online (Sandbox Code Playgroud)

onfind_packages并定义 a MANIFEST.in,但测试总是被编译并包含在包中。

有什么线索吗?

python setuptools

5
推荐指数
1
解决办法
2128
查看次数

在Python中打印两个数字的数字串联

有没有办法在Python中连接数字,让我说我有代码

print(2, 1)
Run Code Online (Sandbox Code Playgroud)

我希望它打印21,而不是2 1如果我使用"+",它打印3.有没有办法做到这一点?

python concatenation python-3.x

4
推荐指数
5
解决办法
1万
查看次数

Django静态文件

我正在尝试使用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)

html python django

4
推荐指数
1
解决办法
2万
查看次数