这是我的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 和外部 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 新手,正在尝试实现良好的“文件创建”检测。如果我不把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)如果没有它,如果我尝试处理一个大文件,我会失败,因为它仍然没有完全写入。
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'