是否可以将从打印语句创建的字符串输出到本地目录中?
如果是,您会使用sysstdout模块吗?
# 回答1
您可以将sys.stdout分配给打开的文件对象。
- f = open("test.txt", 'w')
- sys.stdout = f
后续的打印语句将把输出定向到打开的文件。
# 回答2
谢谢!但是,我的文件没有.etc扩展名。它们是唯一的,我需要它们实际上被直接传播到一个目录中。这个是可能的吗?
# 回答3
保存sys.stdout的旧值并在完成后恢复它是一个好主意。
- stdout_old = sys.stdout
- sys.stdout = open("test.txt", 'a')
- # do stuff
- sys.stdout = stdout_old
# 回答4
就我所知没有。信息以文件的形式存储在光盘上。目录不是文件。顺便说一句,文件对象不必有扩展名。
# 回答5
如果您运行的是Linux,则可以通过管道将标准输出直接传输到文件
Program_name.py>输出_打印文件.txt
# 回答6
因此,我使用以下代码尝试了sysstd输出
- import os
-
- path = '/Users/felishalawrence/testswps/vol1'
- for file in os.listdir(path):
- newFile = file[:file.rindex("v")]+"v20"
- sys.stdout = '/Users/felishalawrence/testswps/vol1'
- print newFile
却一无所获。没有错误,当我删除第5行并再次运行它时,它没有打印出我在IPython笔记本中的结果。输出也不在指定的文件夹中。我做错什么了?我可以重置它吗?如果是这样的话,是如何做到的呢?
# 回答7
在for循环中,您定义了一个值来标识"newfile",但不使用该值执行任何操作。在for循环之后,您可以将
Sys.stdout
在应该将其分配给打开的文件对象时,将其添加到目录。下面的打印语句没有任何用处。