Python 2.7 如何使用python中的terminal命令写入文件?

Python 2.7 如何使用python中的terminal命令写入文件?,python-2.7,Python 2.7,我正在学习编码,我是个新手。我已经写了几个脚本,并希望将它们组合成一个脚本。我实际上是在尝试从终端获取“look.”命令,将其输入到文本文件中,然后打开该文本文件,开始处理其中的单词 我尝试了许多不同的变体: print "What file do you want to create? " file_in = raw_input(">") file_in = open(file_in, 'w') new_file = os.system("look .") file_in.write(n

我正在学习编码,我是个新手。我已经写了几个脚本,并希望将它们组合成一个脚本。我实际上是在尝试从终端获取“look.”命令,将其输入到文本文件中,然后打开该文本文件,开始处理其中的单词

我尝试了许多不同的变体:

print "What file do you want to create? "
file_in = raw_input(">")
file_in = open(file_in, 'w')
new_file = os.system("look .")
file_in.write(new_file)
这导致:

Traceback (most recent call last):
File "hash.py", line 13, in <module>
file_in.write(new_file)
TypeError: expected a character buffer object
但这导致:

capital_words = open(new_file, 'w')
TypeError: coercing to Unicode: need string or buffer, int found
我试着把大写字母转换成str,但它根本不允许我这么做。我可以使用脚本创建列表,我可以打开一个现有的列表,并使用单独的脚本将每个单词大写(这就是我在这里打算做的),但是当我将它们组合在一起时,我会遇到这个问题

感谢您的帮助


(我知道这没有任何实际应用,我只是想学习编程的基础知识)

操作系统调用不会返回您调用的程序的输出。它返回其退出代码。要捕获程序的输出,需要使用
子流程
模块,调用
Popen
并使用
子流程管道
捕获输出

以下是方法:

import subprocess
# Create a Popen object that captures the output.
p=subprocess.Popen(['look','data'],stdout=subprocess.PIPE)
# Call 'look data' and wait for it to finish.
p.wait()
# Now read the output.
print p.stdout.read()
这将产生:

data
database
database's
databases
要将输出转储到文件,而不是打印p.stdout.read(),您应该执行以下操作:

import subprocess
with open('foobar.txt', 'w') as f:
  p=subprocess.Popen(['look','data'], stdout=f)
  p.wait()

os.system
调用不会返回您调用的程序的输出。它返回其退出代码。要捕获程序的输出,需要使用
子流程
模块,调用
Popen
并使用
子流程管道
捕获输出

以下是方法:

import subprocess
# Create a Popen object that captures the output.
p=subprocess.Popen(['look','data'],stdout=subprocess.PIPE)
# Call 'look data' and wait for it to finish.
p.wait()
# Now read the output.
print p.stdout.read()
这将产生:

data
database
database's
databases
要将输出转储到文件,而不是打印p.stdout.read(),您应该执行以下操作:

import subprocess
with open('foobar.txt', 'w') as f:
  p=subprocess.Popen(['look','data'], stdout=f)
  p.wait()