标签: sys

阻止sys.stdout写入文本文件

我正在使用python sys将我的stdout保存到文本文件中.

sys.stdout=open('OLSYield.txt','w')
Run Code Online (Sandbox Code Playgroud)

但是我只想要一部分stdout转到文本.如何停止写入txt文件并重定向回终端或控制台?

所以看起来应该是这样的

sys.stdout=open('OLSYield.txt','w')
print "helloWorld appears in text file"

sys.stdout=close('OLSYield.txt','w')
print "helloWorld appears in console"
Run Code Online (Sandbox Code Playgroud)

我不确定我应该用什么命令关闭 stdout=open

python sys spyder

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

Sys.exit() 抛出语法错误

我正在创建一个检查输入并在输入格式不正确时退出的函数。但是,我收到一个错误,提示 sys.exit() 是“无效语法”。任何帮助将非常感激!

import re 
import sys

def my_program(x):
# takes input in form '#d#'
    if re.match('\d\w\d', x ) is False:
        print('Format of input must be '#d#')
    sys.exit()
Run Code Online (Sandbox Code Playgroud)

python sys

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

Python-sys.stdout.flush()在python 2.7中的2行

我正在用python 2.7编写

我有以下代码:

a = 0
b = 0
while True:
    a += 1
    b += 1
    print str(a)
    print str(b)
Run Code Online (Sandbox Code Playgroud)

输出如下:

1
1
2
2
3
3
4
....
Run Code Online (Sandbox Code Playgroud)

并希望用这两行冲洗stdout.flush().代码看起来像这样,但它不起作用..

import sys

a = 0
b = 0
while True:
    a += 1
    b += 1
    sys.stdout.write(str(a)+"\n")
    sys.stdout.write(str(b)+"\r")
    sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)

这会产生如下输出:

1   #1
2   #1   ->#2
3          #2   ->#3
4                 #3   ->#4
...
Run Code Online (Sandbox Code Playgroud)

我知道这是因为\r只跳到第二行的开头,然后从下一个打印开始..

如何将光标设置为第1行的开头而不是第2行?

所以它只刷新2行:

n  #1 ->#2  ->#3  ->#4  ->#.....
n  #1 ->#2  ->#3 …
Run Code Online (Sandbox Code Playgroud)

python stdout flush sys python-2.7

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

将 arg 传递给 subprocess.call

我有一系列脚本,它们被另一个脚本以明确的顺序调用run.py

里面run.py我有以下内容:

script1 = str(sys.path[0]) + "\\script1.py"
subprocess.call(["Python", script1])
Run Code Online (Sandbox Code Playgroud)

依此类推 3 个脚本。如果我想以这种格式向脚本 1 传递两个参数,例如脚本执行时要在脚本中使用的显式运行设置等参数,我该怎么做?我有一种感觉,它会依赖于 script1 中的 sys.argv,但是无论我传递什么索引位置,都会出现参数超出范围的错误。

谢谢!

python subprocess exec call sys

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

为什么Hello只打印两次?

主文件

#main.py
import main
print('Hello')
Run Code Online (Sandbox Code Playgroud)

输出

Hello
Hello
Run Code Online (Sandbox Code Playgroud)

我相信,当涉及到该行时import main,当时main已注册sys.modules,因此另一个脚本的 import 语句(我相信它不是其中的一部分__main__)不会被执行。有人可以告诉我我是否理解正确?如果不是,请给出解释。

python module sys

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

将\n包含在python中的字符串中

我如何在python中的字符串中转义\n.

我怎么写python这个字符串中的stdin "abc\ndef"作为单个输入

Sys.stdout.write("abc\ndef")
Run Code Online (Sandbox Code Playgroud)

电流输出

import sys

>>> sys.stdout.write("abc\ndef")
abc
def
Run Code Online (Sandbox Code Playgroud)

我希望它是 abc\ndef

python stdin stdout sys

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

Python在函数中使用sys.argv来读取文件名

我有一个函数,它接收并读取一个csv文件,以便我可以输入

python myscript.py filename.csv运行我的脚本.以下是我的功能:

def read(sys.argv[1]):
 ...
 ...
Run Code Online (Sandbox Code Playgroud)

但是我得到这个错误:

  File "myscript.py", line 6
    def read(sys.argv[1]):
                ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我怎么能写我的脚本才能做到这一点?

谢谢,

python sys argv

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

('syntax%(name,name,name)',<open file'<stderr>',模式'w'在0x01CE60D0>)?

为什么当我运行这行代码时:

print ("syntax %(name,name,name)",sys.stderr)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

('syntax %(name,name,name)', <open file '<stderr>', mode 'w' at 0x01CE60D0>)
Run Code Online (Sandbox Code Playgroud)

python sys

-6
推荐指数
1
解决办法
907
查看次数

标签 统计

python ×8

sys ×8

stdout ×2

argv ×1

call ×1

exec ×1

flush ×1

module ×1

python-2.7 ×1

spyder ×1

stdin ×1

subprocess ×1