可能重复:
退出时挂着Pygame程序
跑这个简单的程序:
import pygame, sys
pygame.init()
screen = pygame.display.set_mode((800,600))
while True:
#process input
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
sys.exit()
Run Code Online (Sandbox Code Playgroud)
在IDLE中得到这个简单的消息:
Traceback (most recent call last):
File "C:/Users/Aerovistae/Desktop/GD_in_class", line 12, in <module>
sys.exit()
SystemExit
Run Code Online (Sandbox Code Playgroud)
程序停止响应,必须是Ctrl + Alt + Del'd.我无法看到我在这里出错的地方,这是我能得到的最基本的.我跟随教授在讲座中所做的事情,我发现我的代码和他的代码之间没有任何区别.谁能提出可能导致问题的原因?
我有一个迭代两个字符串数组的测试脚本,我想用它sys.stdout.write来为用户提供一个简单的"进度条".
我目前的剧本:
import sys
from time import sleep
names = ['Serv1', 'Serv2', 'Serv3', 'Serv4', 'Serv5']
states = ['Running', 'Stopped', 'Running', 'Running', 'Stopped']
terminated=0
passed=0
for i in range (0, len(names)):
if 'Running' in states[i]:
print " [*] stop if running {0} ".format(str(names[i]))
#service_info(action, machine, names[i])
terminated+=1
else:
print " [!] Passing over {0} ".format(str(names[i]))
passed+=1
sleep(2)
sys.stdout.write(" [ ] {0}/{1} progress left\r".format(i+1, len(names)))
Run Code Online (Sandbox Code Playgroud)
预期输出用于sys.stdout.write保持更新,而打印语句通知用户某些动作.但是当我运行它时,唯一的时间sys.stdout.write显示在脚本的末尾.例如
[*] stop if running Serv1
[!] Passing over Serv2
[*] …Run Code Online (Sandbox Code Playgroud) 我需要生成一些零字符串,例如:
import sys
MB = 1024 * 1024
cache = ''
while sys.getsizeof(cache) <= 10 * MB:
cache = cache + "0"
Run Code Online (Sandbox Code Playgroud)
并将其保存到文件中,但我的印象是这种方法太慢,并且浪费大量系统资源。
尽可能快地做到这一点的最佳方法是什么?
我的代码是这样的:
if (not Y):
print ("Can't print")
sys.exit(-1)
Run Code Online (Sandbox Code Playgroud)
我无法理解参数(-1)返回什么?
我编写了一个Python脚本,用于检查参数,如果有足够的参数则打印它们,如果没有足够的参数或没有参数则显示警告。但是默认情况下,脚本本身是参数之一,我不想将其包含在代码操作中。
import sys
# print warning if no arguments.
if len(sys.argv) < 2:
print("\nYou didn't give arguments!")
sys.exit(0)
# print warning if not enough arguments.
if len(sys.argv) < 3:
print("\nNot enough arguments!")
sys.exit(0)
print("\nYou gave arguments:", end=" ")
# print arguments without script's name
for i in range(0, len(sys.argv)):
if sys.argv[i] == sys.argv[0]: # skip sys.argv[0]
continue
print(sys.argv[i], end=" ") # print arguments next to each other.
print("")
Run Code Online (Sandbox Code Playgroud)
我已经解决了这个问题:
if sys.argv[i] == sys.argv[0]: # skip sys.argv[0]
continue
Run Code Online (Sandbox Code Playgroud)
但是,有没有更好/更合适的方法来忽略argv [0]?
在我的代码中,我从 tkinter gui 调用管道。当用户按下“运行”按钮时,整个管道开始运行。如果选择了某些设置,则会调用主 GUI 的顶层,要求提供附加文件。除非按下取消按钮或关闭窗口 X,否则这一切都有效。顶层关闭但程序继续运行。最终它会因为文件不存在而崩溃。调用 sys.exit() 不是解决方案,因为这样整个 gui 都会关闭,我只希望特定的顶层关闭并停止正在运行的文件。
如何杀死使用 exec(open(file).read()) 运行的文件而不杀死整个程序?
我试图获得一个简单的程序来获取命令行参数并打印出来.任何名称加上解释标记的字符串.例子:鲍勃!!!!
import sys
def hello(name):
name = name + "!!!!"
print(hello,name)
def main():
hello(sys.argv[1])
main()
Run Code Online (Sandbox Code Playgroud)
它正确打印出Bob !!!!,但还有其他一些东西:
函数你好在0x7f69465145f0鲍勃!!!! 围绕整个事情的<>除了鲍勃!!!!
我不知道为什么它不会简单地打印出来,鲍勃!!!!,通常没有其他的东西.
此外,每次运行时,<>中的数字/字母组合都会发生变化.将在功能打招呼和鲍勃!!!! 保持不变.
我是Python的新手,
我尝试使用代码执行文件:
import sys
def main():
print sys.argv[1]
main()
Run Code Online (Sandbox Code Playgroud)
对于此运行:从命令行获取hello.py,但得到了
C:\Python34>hello.py
File "C:\Python34\hello.py", line 4
print sys.argv[1]
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题吗?
如果我有一个名为example.py的Python文件,with open('%s/data.csv' % sys.path[0]) as var_name:并且data.csv与example.py位于同一目录中,那么如果我从终端运行example.py它会正常工作,但是当使用unittest时它不起作用.我的理解是,当从终端运行它时,sys.path [0]为我提供了正在运行的文件的路径(example.py),因此如果data.csv和example.py在同一目录中,那么sys. path [0] /data.csv将正确找到data.csv.但是当unittest运行时,无论什么幕后原因,sys.path [0]都是空的,并且正确找不到/data.csv.
所以我想知道什么是一个好的策略(也许是一些显式的代码:))是为了使这个引用总是工作无论如何(我猜没有sys.path [0]但是如果有一些东西可以使用我将会接受).
我还应该提到我在OS X 10.9.3上使用python 2.7
该程序检查分子式.我希望程序在检测到公式中的错误时立即退出.例如,公式"a"不正确.当我通过我的代码运行它时:
def readletter():
if q.peek() in string.ascii_lowercase:
print(q.peek())
return q.get()
else:
raise Formelfel("Förväntad liten bokstav.")
def readLetter():
if q.peek() in string.ascii_uppercase:
print(q.peek())
return q.get()
else:
raise Formelfel("Förväntad stor bokstav.")
def readAtom():
X = ""
try:
X += readLetter()
except Formelfel:
print("Missing capital letter at end of row "+getRest())
sys.exit()
return
try:
x = readletter()
atom = X+x
except (Formelfel, TypeError):
atom = X
if atom in ATOMER:
return
else:
raise Formelfel("Okänd atom.")
def readGroup():
if q.peek() in string.ascii_uppercase or q.peek() …Run Code Online (Sandbox Code Playgroud) sys ×10
python ×9
argv ×1
command-line ×1
exec ×1
exit ×1
file ×1
printing ×1
python-2.7 ×1
python-3.x ×1
reference ×1
stdout ×1
tkinter ×1