小编ccw*_*te1的帖子

python如何强制subprocess.call不等待被调用的命令完成

我使用subprocess.call来执行bat文件.subprocess.call正在等待bat文件在继续之前完成.我想让它开始蝙蝠然后继续.查看子进程的文档,看起来它没有等待命令完成的选项.

有没有办法在subprocess.call之外执行此操作或其他选项?

python subprocess

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

python对象AttributeError:类型对象'Track'没有属性'title'

如果这是一个noob问题,我道歉,但我似乎无法想出这个问题.

我已经定义了一个定义音乐曲目的对象(注意:最初只有ATTRIBUTE和self.ATTRIBUTE.我编辑了这些值以帮助消除混淆.它们对问题没有影响)

class Track(object):
  def __init__(self, title, artist, album, source, dest):
    """
    Model of the Track Object

    Contains the followign attributes:
    'Title', 'Artist', 'Album', 'Source', 'Dest'
    """
    self.atrTitle = title
    self.atrArtist = artist
    self.atrAlbum = album
    self.atrSource = source
    self.atrDest = dest
Run Code Online (Sandbox Code Playgroud)

我使用ObjectListView创建特定目录中的轨道列表

....other code....
self.aTrack = [Track(sTitle,sArtist,sAlbum,sSource, sDestDir)]
self.TrackOlv.AddObjects(self.aTrack)
....other code....
Run Code Online (Sandbox Code Playgroud)

现在我想迭代列表并打印出每个项目的单个值

list = self.TrackOlv.GetObjects()

for item in list:
    print item.atrTitle
Run Code Online (Sandbox Code Playgroud)

这失败了,错误

AttributeError: type object 'Track' has no attribute 'atrTitle'
Run Code Online (Sandbox Code Playgroud)

让我感到困惑的是,如果我在对象列表视图显示中突出显示单个项目并使用以下代码,它将正确打印突出显示项目的单个值

list = self.TrackOlv.GetSelectedObject()
print list.atrTitle
Run Code Online (Sandbox Code Playgroud)

编辑:每个请求的完整来源.要查看错误,请浏览到源dir w/.mp3文件,然后单击打印按钮.

#Boa:Frame:Frame1 …
Run Code Online (Sandbox Code Playgroud)

python wxpython objectlistview

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

string.replace('the','')正在留下空格

我有一个字符串,它是我从MP3 ID3标签获得的艺术家的名字

sArtist = "The Beatles"
Run Code Online (Sandbox Code Playgroud)

我想要的是改变它

sArtist = "Beatles, the"
Run Code Online (Sandbox Code Playgroud)

我遇到了两个不同的问题.我的第一个问题是我似乎在为''换取''.

if sArtist.lower().find('the') == 0:
    sArtist = sArtist.lower().replace('the','')
    sArtist = sArtist + ", the"
Run Code Online (Sandbox Code Playgroud)

我的第二个问题是因为我必须检查"The"和"the"我使用sArtist.lower().然而,这将我的结果从"甲壳虫乐队"改为"披头士乐队".为了解决这个问题,我刚刚删除了.lower并添加了第二行代码来明确查找这两种情况.

if sArtist.lower().find('the') == 0:
    sArtist = sArtist.replace('the','')
    sArtist = sArtist.replace('The','')
    sArtist = sArtist + ", the"
Run Code Online (Sandbox Code Playgroud)

所以我真正需要解决的问题是为什么我用' <SPACE>而不是'代替'' <NULL>.但如果有人有更好的方法来做到这一点我会很高兴教育:)

python string mp3 id3

0
推荐指数
1
解决办法
253
查看次数

python如何对2个值进行排序

如果我有一个清单

listOfFiles = [<str>,<intA>,<intB>]
Run Code Online (Sandbox Code Playgroud)

我如何先通过intA然后通过intB对此列表进行排序?

最终结果看起来像

<str>,1,1
<str>,1,2
<str>,1,3
<str>,2,1
<str>,2,2
etc
Run Code Online (Sandbox Code Playgroud)

python sorting

0
推荐指数
1
解决办法
181
查看次数

标签 统计

python ×4

id3 ×1

mp3 ×1

objectlistview ×1

sorting ×1

string ×1

subprocess ×1

wxpython ×1