小编Gui*_*ume的帖子

使用带有多个扩展名的endswith

我正在尝试检测带有扩展名列表的文件.

ext = [".3g2", ".3gp", ".asf", ".asx", ".avi", ".flv", \
                        ".m2ts", ".mkv", ".mov", ".mp4", ".mpg", ".mpeg", \
                        ".rm", ".swf", ".vob", ".wmv"]
if file.endswith(ext): # how to use the list ?
   command 1
elif file.endswith(""): # it should be a folder
   command 2
elif file.endswith(".other"): # not a video, not a folder
   command 3
Run Code Online (Sandbox Code Playgroud)

python file list

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

Python在字符串中获取x个第一个单词

我正在寻找一个代码,它在脚本中包含4(或5)个第一个单词.我试过这个:

import re    
my_string = "the cat and this dog are in the garden"    
a = my_string.split(' ', 1)[0]
b = my_string.split(' ', 1)[1]
Run Code Online (Sandbox Code Playgroud)

但我不能超过2个字符串:

a = the
b = cat and this dog are in the garden
Run Code Online (Sandbox Code Playgroud)

我想拥有:

a = the
b = cat
c = and
d = this
...
Run Code Online (Sandbox Code Playgroud)

python string

15
推荐指数
3
解决办法
4万
查看次数

python读取目录和子目录中的所有文件

我正在尝试在python中翻译这个bash行:

find /usr/share/applications/ -name "*.desktop" -exec grep -il "player" {} \; | sort | while IFS=$'\n' read APPLI ; do grep -ilqw "video" "$APPLI" && echo "$APPLI" ; done | while IFS=$'\n' read APPLI ; do grep -iql "nodisplay=true" "$APPLI" || echo "$(basename "${APPLI%.*}")" ; done
Run Code Online (Sandbox Code Playgroud)

结果是显示在Ubuntu系统中安装的所有视频应用程序.

- >读取/ usr/share/applications /目录中的所有.desktop文件

- >过滤字符串"video""player"以查找视频应用程序

- >过滤字符串"nodisplay = true"和"audio"不显示音频播放器和no-gui应用程序

我希望得到的结果是(例如):

kmplayer
smplayer
vlc
xbmc
Run Code Online (Sandbox Code Playgroud)

所以,我试过这段代码:

import os
import fnmatch

apps = []
for root, dirnames, filenames in os.walk('/usr/share/applications/'):
   for dirname in dirnames: …
Run Code Online (Sandbox Code Playgroud)

python file subdirectory

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

变量更改时的python信号?

我有一个脚本,它每秒计算一个变量(我的程序读取脚本 bash 的输出并每秒解释数据)。是否存在检测此 var 更改的方法?

这是我的代码的一部分,文本是 ffmpeg 或 avconv 输出,从 vte 终端读取:

#Terminal
def terminal(self):
        self.v = vte.Terminal()
        self.v.connect ("child-exited", lambda term: self.verif(self, my_class))
        self.v.connect('contents-changed', self.term_output)
        [...]    
def term_output(self, my_class, donnees=None):
        text = str(self.v.get_text(lambda *a: True).rstrip())
        [...] # decode the text
        print "time", self.time
        print "duration", self.duration
Run Code Online (Sandbox Code Playgroud)

vte终端中的返回(avconv输出):

#Terminal
def terminal(self):
        self.v = vte.Terminal()
        self.v.connect ("child-exited", lambda term: self.verif(self, my_class))
        self.v.connect('contents-changed', self.term_output)
        [...]    
def term_output(self, my_class, donnees=None):
        text = str(self.v.get_text(lambda *a: True).rstrip())
        [...] # decode the text
        print "time", self.time …
Run Code Online (Sandbox Code Playgroud)

python variables

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

python run命令作为根脚本中的普通用户

我有一个以root身份启动的python脚本,我无法更改它.

我想知道是否可以将此脚本(或所有脚本)的某些行作为普通用户执行(我不需要root用户来运行它).

原因是,我使用通知,并且python-notify不能在root中的所有机器上工作(看起来像这个bug)

那么,你知道是否可以用子进程或其他方法来改变它?

谢谢

python root

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

Python - Paramiko - 不兼容的ssh服务器

几个月来我写的一个脚本出错了,它的覆盆子pi工作得非常好,但现在有了橙色pi我有这个:

>>> import paramiko
>>> transport = paramiko.Transport("192.168.2.2", 22)
>>> transport.connect(username = "orangepi", password = "my_pass")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/paramiko/transport.py", line 978, in connect
    self.start_client()
  File "/usr/lib/python2.7/dist-packages/paramiko/transport.py", line 406, in start_client
    raise e
paramiko.ssh_exception.SSHException: Incompatible ssh server (no acceptable macs)
Run Code Online (Sandbox Code Playgroud)

我可以在控制台中使用ssh连接而没有问题.

有人有想法吗?

python ssh paramiko

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

播放歌曲后如何让pygame退出

我正在尝试使用本教程在我的脚本中运行pygame而不是Mplayer:

所以,在代码中:

import pygame     
pygame.init()
song = pygame.mixer.Sound(my_song.ogg)
clock = pygame.time.Clock()
song.play()
while True:
   clock.tick(60)
pygame.quit()
print "done"   # not appears
exit()
Run Code Online (Sandbox Code Playgroud)

这首歌很好玩,但"完成"从未打印在控制台中.该程序保持循环...如何解决?谢谢

编辑:我发现了这个,它运行良好,有10秒钟的歌曲:

import pygame
import time     
pygame.init()
song = pygame.mixer.Sound(son)
clock = pygame.time.Clock()
song.play()
while True:
  clock.tick(60)
  time.sleep(10)
  break
pygame.quit()
print "done"
exit()
Run Code Online (Sandbox Code Playgroud)

python pygame quit

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

Python - 如何删除列表列表中的最后一个元素?

我有一个这样的列表列表:

listadr = [[a, b], [1, 2]]
Run Code Online (Sandbox Code Playgroud)

如何删除最后一个列表的最后一个条目才能得到这个结果?

result = [[a, b], [1]]
Run Code Online (Sandbox Code Playgroud)

我试过了

for adr in listadr:
   for adr[1] in adr:
      del adr[-1]
Run Code Online (Sandbox Code Playgroud)

但是这段代码也删除'b'......

python list

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

python list:删除子列表的最后一个字符串

我有这种类型的清单:

lst = [u'cat 1234', u'dog bird 5678', u'fish horse elephant 9012']
Run Code Online (Sandbox Code Playgroud)

如何删除每个字符串的最后一个单词,以便:

result = ['cat', 'dog bird', 'fish horse elephant']
Run Code Online (Sandbox Code Playgroud)

编辑:我添加了"你",unicode,我不知道是否有区别编辑2:对不起,它会伤害我的眼睛..

python list

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

python - 如何检查变量是否为'gtk.gdk.PixbufLoader'?

我想知道是否可以检查变量是否是这种类型:

<type 'gtk.gdk.PixbufLoader'>
Run Code Online (Sandbox Code Playgroud)

像这样的一行:

if type(var) == 'gtk.gdk.PixbufLoader':  # pseudocode
   print "Found!"
Run Code Online (Sandbox Code Playgroud)

谢谢

python gtk variables

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

标签 统计

python ×10

list ×3

file ×2

variables ×2

gtk ×1

paramiko ×1

pygame ×1

quit ×1

root ×1

ssh ×1

string ×1

subdirectory ×1