相关疑难解决方法(0)

225
推荐指数
5
解决办法
23万
查看次数

如何检查我是否在Python上运行Windows?

我找到了平台模块,但它说它返回'Windows'并且它在我的机器上返回'Microsoft'.我注意到在stackoverflow的另一个线程中它有时返回'Vista'.

所以,问题是,如何实施?

if isWindows():
  ...
Run Code Online (Sandbox Code Playgroud)

以前向兼容的方式?如果我必须检查"Vista"之类的东西,那么当下一个版本的Windows出现时它就会中断.


注意:声称这是一个重复的问题的答案实际上没有回答问题isWindows.他们回答"什么平台"的问题.由于存在许多种类的窗口,它们都没有全面地描述如何得到答案isWindows.

python platform platform-specific

192
推荐指数
5
解决办法
13万
查看次数

如何在Python中检查操作系统?

我想检查操作系统(在脚本运行的计算机上).

我知道我可以os.system('uname -o')在Linux 中使用,但它在控制台中给我一个消息,我想写一个变量.

如果脚本可以判断它是Mac,Windows还是Linux,那也没关系.我怎么检查呢?

python linux operating-system

124
推荐指数
5
解决办法
8万
查看次数

何时使用os.name,sys.platform或platform.system?

据我所知,Python有3种方法可以找出正在运行的操作系统:

  1. os.name
  2. sys.platform
  3. platform.system()

了解此信息通常在条件导入中使用,或者使用不同平台之间的功能(例如,time.clock()在Windows上与time.time()UNIX上).

我的问题是,为什么有3种不同的方法呢?何时应该使用一种方式而不是另一种方式?哪种方式是"最佳"(大多数面向未来或最不可能意外地排除您的程序实际可以运行的特定系统)?

看起来sys.platform是不是更具体的os.name,可以让你区分win32cygwin(而不是只nt),并linux2darwin(而不是只posix).但如果是这样的话,那么sys.platform和之间的区别platform.system()呢?

例如,哪个更好,这个:

import sys
if sys.platform == 'linux2':
    # Do Linux-specific stuff
Run Code Online (Sandbox Code Playgroud)

或这个?:

import platform
if platform.system() == 'Linux':
    # Do Linux-specific stuff
Run Code Online (Sandbox Code Playgroud)

现在我会坚持sys.platform,所以这个问题并不是特别紧迫,但我非常感谢对此有所澄清.

python operating-system python-import

93
推荐指数
5
解决办法
4万
查看次数

sys.platform中可能的值?

以下命令可能返回的值是多少?

import sys
print sys.platform
Run Code Online (Sandbox Code Playgroud)

我知道有很多可能性,所以我主要对"主要"(Windows,Linux,Mac OS)感兴趣

python cross-platform

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

如何让Python说话

我怎么能让Python说出一些文字?

我可以使用节与子进程,但我将无法控制它(或者可能在交互模式,但它不会干净).

有没有Python TTS库?就像节日的API,eSpeak,......?

python text-to-speech

63
推荐指数
7
解决办法
13万
查看次数

检查Linux发行版名称

我必须从Python脚本中获取Linux发行版名称.dist平台模块中有一个方法:

import platform
platform.dist()
Run Code Online (Sandbox Code Playgroud)

但在我的Arch Linux下它返回:

>>> platform.dist()
('', '', '')
Run Code Online (Sandbox Code Playgroud)

为什么?我怎么能得到这个名字?

PS.我必须检查分发是否是基于Debian的.


更新:我在这里找到了Python站点,自2.6以来,dist()已被弃用.

>>> platform.linux_distribution()
('', '', '')
Run Code Online (Sandbox Code Playgroud)

python linux

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

从Python打印到标准打印机?

是否有合理的标准和跨平台方式将文本(甚至PS/PDF)打印到系统定义的打印机?

假设这里有CPython,而不是像使用Jython和Java打印API那样聪明.

python printing cpython

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

如何使用Python 2.5以友好的方式获取操作系统名称?

我试过了:

print os.name
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

:nt
Run Code Online (Sandbox Code Playgroud)

但是,我希望输出更像"Windows 98"或"Linux".

经过这个问题的建议,我也尝试过:

import os
print os.name
import platform
print platform.system()
print platform.release()
Run Code Online (Sandbox Code Playgroud)

我的输出是:

Traceback (most recent call last):
  File "C:/Documents and Settings/BIU1LR/Desktop/python_programs/program/platform.py", line 3, in <module>
    import platform
  File "C:/Documents and Settings/BIU1LR/Desktop/python_programs/program\platform.py", line 4, in <module>
    print platform.system()
AttributeError: 'module' object has no attribute 'system'
Run Code Online (Sandbox Code Playgroud)

我使用的是Python 2.5.2.我究竟做错了什么?

python

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

在Windows上模拟/ dev/random

我正在尝试将python代码从linux移植到Windows.在各个地方,通过从/ dev/random读取来生成随机数.有没有办法在Windows上模拟/ dev/random?

我正在寻找一种能让代码在linux上保持可用的解决方案......

python linux windows random

7
推荐指数
2
解决办法
3144
查看次数