Python将0写入fi

2024-05-20 16:06:14 发布

您现在位置:Python中文网/ 问答频道 /正文

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()

我正在尝试写入操作系统函数到文件。但唯一写入文件的是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()

在输出窗口上,它提供了完美的输出,但在写入文本文件时,它写入零。我也试过使用return,但没有用。请帮忙。你知道吗


Tags: importtxtwritelinesdatapdfmobiosdir
2条回答

使用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中。你知道吗

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

只需让命令来完成工作。你知道吗

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

使用“>;>;”将附加到任何现有文件。只需使用“>;”来编写新文件。你知道吗

我喜欢使用子流程的另一种解决方案,但由于这是特定于操作系统的,我认为这更简单。你知道吗

相关问题 更多 >