Python将0写入文件

时间:2017-04-27 22:08:12

标签: python windows file text io

import os


fileHandle = open('booksNames.txt', 'r+')

def getData():
    data = os.system('dir /b /a /s *.pdf *.epub *.mobi')
    fileHandle.writelines(str(data))

fileHandle.close()

我试图将os.system函数返回的数据写入文件。但是,文件中唯一写入的内容是0.以下是我尝试过的其他一些变体。

import os

fileHandle = open('booksNames.txt', 'r+')

getData = lambda:os.system('dir /b /a /s *.pdf *.epub *.mobi')
data = getData()

fileHandle.writelines(str(data))
fileHandle.close()

在输出窗口中,它提供了完美的输出,但在写入文本文件时写入零。我也试过使用返回但没有用。请帮助。

2 个答案:

答案 0 :(得分:3)

使用subprocess模块。有许多方法,但最简单的是:

>>> import subprocess
>>> with open('out.txt','w') as f:
...     subprocess.call(['dir','/b','/a','/s','*.pdf','*.epub','*.mobi'],stdout=f,stderr=f,shell=True)
...
0

零是退出代码,但内容将在out.txt

答案 1 :(得分:1)

对于Windows(我假设您使用的是Windows,因为您使用的是' dir'命令,而不是Unix / Linux' ls'):

只需让命令完成工作。

os.system('dir /b /a /s *.pdf *.epub *.mobi >> booksNames.txt')

使用'>>'将附加到任何现有文件。只需使用'>'写一个新文件。

我喜欢使用子进程的其他解决方案,但由于这是特定于操作系统的,我认为这更简单。