小编pep*_*nas的帖子

Python - "in"和"in x for x in"之间的区别是什么

这是我的Python代码:

# 1)
if (x not in z for z in y):

# 2)
if (x not in y):
Run Code Online (Sandbox Code Playgroud)

其中y可以是如下列表:

y = ['1','2','3']
Run Code Online (Sandbox Code Playgroud)

有人能解释一下这两句话的区别吗?谢谢!

python membership containers generator data-structures

5
推荐指数
2
解决办法
1167
查看次数

Python (Mutagen) - 无法从 MP4/MP3 文件中获取艺术家

这是我第一次使用 Python 和外部 API;我试图从 MP3 / MP4 文件中获取艺术家姓名,但没有成功。在第一种情况(MP3)中,我收到以下错误:

HeaderNotFoundError: can't sync to an MPEG frame
Run Code Online (Sandbox Code Playgroud)

在后者中,我的代码不打印任何内容。

这些是处理我的文件的测试函数:

1) MP3

from mutagen.mp3 import MP3    
def mp3_reader(path):
   track = MP3(path)       
   try:
       print track['artist']
   except SystemError:
       print ("SYSTEM ERROR!")
Run Code Online (Sandbox Code Playgroud)

2)MP4

from mutagen.mp4 import MP4

def mp4_reader(path):

    track = MP4(path)

    try:
        print track.tags['artist']
    except SystemError:
        print ("SYSTEM ERROR!")
Run Code Online (Sandbox Code Playgroud)

另一个与 Python 相关的问题:如何有效地使用 try-catch 表达式?我知道那些不起作用...

非常感谢!!

编辑后的代码:

def mp3_reader(path):

track = MP3(path)

try:
    print ("Trying to print MP3 infos.")
    track.pprint()
except Exception as err:
    print …
Run Code Online (Sandbox Code Playgroud)

python mutagen

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

Python(看门狗) - 等待文件被正确创建

我是 Python 新手,正在尝试实现良好的“文件创建”检测。如果我不把time.sleep(x)我的文件以错误的方式详细说明,因为它们仍在文件夹中“创建”。(缓冲区不为空)如何在x每次创建文件时不等待几秒钟的情况下绕过这个事情?

这是我的代码:

主要的:

while 1:
    if len(parser()) > 0: #  arguments are valid
        if len(parser()) == 3:
            log_path = parser()['log_path']
        else:
            log_path = os.getcwd()
        paths = parser()
        if paths:
            handler = Event_Handler()
            observer = Observer()
            observer.schedule(handler, paths['src_fld'], True)
            observer.start()
            try:
                    while True:
                        time.sleep(1)
            except KeyboardInterrupt:
                observer.stop()
            observer.join()
    else:
        exit(1)
Run Code Online (Sandbox Code Playgroud)

Event_Handler 类:

class Event_Handler(FileSystemEventHandler):
    def on_created(self, event):
        if not event.is_directory:
            time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

正如我所说,time.sleep(1)如果没有它,如果我尝试处理一个大文件,我会失败,因为它仍然没有完全写入。

python watchdog

3
推荐指数
1
解决办法
4353
查看次数

TypeError:%不支持的操作数类型:'NoneType'和'int'

def prime(x):
    if (x == 0 or x % 2 == 0):
        return 0
    elif (x == 1):  
        return 1
    else:
        for y in range(x-1,0,-1):
            if (x % y == 0):
                return 0
            else:
                pass
        if (y == 1):
            return 1

for x in range(1,20):
    if (prime(x)):
        print ("x:%d, prime YES") % (x)
    else:
        print ("x:%d, prime NO") % (x)
Run Code Online (Sandbox Code Playgroud)

我正在开始尝试Python,我无法理解我的代码有什么问题......我得到了:

... print("x:%d,prime YES")%(x)
TypeError:%支持的操作数类型:'NoneType'和'int'

python

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