如何在PyGTK或GTK或其他编程语言中打开列表?在Ubuntu?
编辑:
我想在桌面上获取列表路径打开的目录!
这是我第一次使用ICU API,并且很难找到我认为非常简单的内容:以本地语言(而不是英语)获得给定的语言环境/语言名称
例子:
fr -> Français
en -> English
pt_BR -> Português Brasileiro, or "Português (Brasil)"
es_ES -> Español Iberico, or "Español (España)"
Run Code Online (Sandbox Code Playgroud)
作为参考,babel我可以使用任何语言获得给定的语言环境名称,native是默认语言:
>>> import babel
>>> locale = babel.Locale.parse('pt_BR')
>>> locale.get_display_name()
português (Brasil)
>>> locale.get_display_name('fr')
portugais (Brésil)
>>> locale.get_display_name('en')
Portuguese (Brazil)
Run Code Online (Sandbox Code Playgroud)
那么,如何在ICU中做同样的事情?由于我使用的是PyICU,因此最欢迎使用python中的示例,但是Java / C / C ++也很好,因为我的问题是API而不是语言。
谢谢!
在我正在开发的游戏中,我想检测NUMLOCK 按键(或keyup),例如在按下时注册“回调”函数。
我并不是要求在给定时刻读取它的状态,我已经可以做到这一点,我也没有兴趣改变它的值。这是关于在按键发生时意识到按键的情况,这样我就不必每隔十分之一秒左右轮询一次其状态。
游戏使用的curses,目前是封锁getch()。Curses 不会检测NUMLOCK按键,我从来没有想到它会检测到(与 LED 相关的键盘不会“产生”任何按键),我想知道是否有任何方法可以做到这一点,这比用 a 替换主 Curses 循环更好非阻塞getch()并调用keyboard_leds()函数来读取当前状态。
例如:我可以在初始化curses后启动一个新线程,将其stdscr屏幕作为参数传递,并且该线程将为按键事件注册一个回调函数(例如,special_keypress())NUMLOCK。因此,该函数只会keyboard_leds()在需要时调用,然后更新stdscr。
我不确定这是否可行,而且我知道我可能必须深入研究一些依赖于体系结构的东西(内核/X11等),所以如果跨平台解决方案不可能,那么我对只使用 Linux 的系统很满意。
我刚开始使用 PyGI(在 Ubuntu Natty 上),尽管我以前从未使用过 pygtk。不过,我在 wxPython 程序中使用过 wnck,获取当前打开的窗口列表很容易。在 PyGI 中,窗口列表始终为空。相关代码位:
from gi.repository import Gtk, Wnck
while Gtk.events_pending():
Gtk.main_iteration()
#... in my app class...
screen = Wnck.Screen.get_default()
wins = screen.get_windows()
Run Code Online (Sandbox Code Playgroud)
与此,wins == []。谢谢!
最近引入了队列设计,关于延迟处理能力以及实现"FIFO"等.
查看文档以尝试获取示例队列,以了解如何在我自己的设计/程序中实现它.但我遇到运行此代码的问题:
import queue
def worker():
while True:
item = q.get()
do_work(item)
q.task_done()
def main():
q = queue.Queue(maxsize=0)
for i in range(num_worker_threads):
t = Thread(target=worker)
t.daemon = True
t.start()
for item in source():
q.put(item)
q.join() # block until all tasks are done
main()
Run Code Online (Sandbox Code Playgroud)
问题:希望有人解释for循环正在做什么,我只是运行代码时出错,所以我不得不遗漏一些东西.
问题发生错误: NameError:未定义全局名称'num_worker_threads'
谢谢-Python新手 -
假设像这样的ini风格的文件,
[Group]
Icon=xxx.ico
Title=An Image Editor
Description=Manipulates .ico, .png and .jpeg images
Run Code Online (Sandbox Code Playgroud)
我想在以(或匹配)"Icon ="开头的行中替换/删除".ico"
我在尝试这个:
oldline="`cat "$file" | grep "Icon="`"
newline="`echo "$oldline" | tr ".ico" ".png"`"
cat "$oldfile" | tr "$oldline" "$newline" > $file
Run Code Online (Sandbox Code Playgroud)
然后我意识到这tr与我想的完全不同.它不是一个传统的"替换为此"功能.所以我想正确的方法是使用sed.但:
sed过.不知道它是如何工作的.这有点矫枉过正吗?sed,鉴于它是如此强大,有没有任何优雅的方法来实现这一点,而不是这个"获取行 - >修改行 - >替换oldline for newline in file"方法?笔记:
提前致谢!
编辑:
感谢你们!这是最终的脚本,作为参考:
#! /bin/bash
# Fix the following WARNING in ~/.xsession-errors
# gnome-session[2035]: EggSMClient-WARNING: Desktop file '/home/xxx/.config/autostart/skype.desktop' has malformed Icon key 'skype.png'(should not …Run Code Online (Sandbox Code Playgroud) 我正在对Linux语言环境文件/usr/share/i18n/locales(如pt_BR)进行一些更改,并且%d-%m-%Y %H:%M必须在Unicode中指定格式字符串(如),其中每个(在本例中为ASCII)字符表示为<U00xx>.
所以像这样的文字:
LC_TIME
d_t_fmt "%a %d %b %Y %T %Z"
d_fmt "%d-%m-%Y"
t_fmt "%T"
Run Code Online (Sandbox Code Playgroud)
一定是:
LC_TIME
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0059>"
t_fmt "<U0025><U0054>"
Run Code Online (Sandbox Code Playgroud)
因此,我需要一个命令行脚本(无论是bash,Python,Perl还是其他东西),它会接受输入%d-%m-%Y并将其转换为<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0059>.
在输入字符串中的所有字符将ASCII字符(从0x20到0x7F),所以这实际上是一个票友"字符到十六进制的字符串"的转换.
有人可以帮帮我吗?我在bash脚本编写方面的技能非常有限,在Python中更糟糕.
优雅,解释的解决方案的奖金.
谢谢!
(顺便说一句,这将是我之前的问题的"反向"脚本)