【发布时间】:2018-01-25 11:17:57
【问题描述】:
我不是很擅长所有技术术语,所以我会尽力解释我的问题。
我编写了一个小脚本来打开 android SDK 并检查连接的设备(使用 windows 10 和 python 2.7.14)。我得到的代码如下:
import os
import datetime
import time
print 'Current Directory:', os.getcwd()
print 'Opening Android SDK...'
os.chdir('C:\\android-sdk\\platform-tools')
print 'Current Directory:', os.getcwd()
t = time.ctime()
print t
print 'Checking for connected devices:'
os.system('adb devices -l')
一切正常,但我想将最后 3 行保存到文本文件中。我试过f = open('logfile.txt', 'w') 然后使用s = str(t, 'Checking for connected devices:', os.system('adb devices -l')) 将其全部转换为字符串并将其写入文件并关闭它,但它不起作用。它甚至没有创建文件,更不用说向它写入任何内容了。
我可能遗漏了一些关键信息,但我是这方面的新手,所以请多多关照!
任何帮助将不胜感激。
非常感谢
编辑:包含写入内容的整个代码:
import os
import datetime
import time
print 'Current Directory:', os.getcwd()
print 'Opening Android SDK...'
os.chdir('C:\\android-sdk\\platform-tools')
print 'Current Directory:', os.getcwd()
t = time.ctime()
f = open('logfile.txt', 'w')
s = str(t, 'Checking for connected devices:', os.system('adb devices -l'))
f.write(s)
f.close()
【问题讨论】:
-
@GeekSambhu 在写入模式下打开一个文件,如果它不存在则创建它(如果它存在则截断它),所以在附加模式下打开不会有太大变化(我的意思是 wrt/ 文件创建)。
-
os.system直接写入其 shell 的stdout,它的目的不是让您捕获该输出(尽管您可以通过 shell 重定向捕获它)。通常,您应该使用subprocess函数之一,而不是非常原始的os.system。 -
如果您正在编写新代码,那么您现在绝对应该以 Python 3 为目标。
标签: python