如何检测stdout / stdin的类型

时间:2014-02-23 12:23:07

标签: python stdout stdin

我不确定这是否是有效的问题。是否有可能检测到python脚本的stdout或stdin的类型?我想检查stdin / stdout是文件夹/ derectory还是数据或二进制类型。

基本上我正在尝试使用python脚本从存档中提取文件。但是,我使用的脚本写入stdout而不是解压缩。我只是想操纵这个stdout来查找目录然后在目标中创建然后查找data / file / bin并从archive中提取到目标目录。

有可能吗?

更新

以下是脚本从iso容器中列出的内容,/BOOT/GRUB2_EF是一个目录。

C:\Users\Sundar\Documents\multibootusb>iso9660.py i:\home\sundar\openSUSE-13.1-K
DE-Live-x86_64.iso
/
/BOOT
/BOOT/0XA89369.
/BOOT/BOOTPART.CFG
/BOOT/GRUB2_EF
/BOOT/GRUB2_EF/GRUB.CFG

我尝试使用此命令创建目录: -

C:\Users\Sundar\Documents\multibootusb>iso9660.py i:\home\sundar\openSUSE-13.1-K
DE-Live-x86_64.iso /BOOT/GRUB2_EF/THEMES > dir

然而,这是我得到的,它不是一个目录......

C:\Users\Sundar\Documents\multibootusb>dir
.
.
23/02/2014  11:52 AM             5,000 detect_iso.py
23/02/2014  11:53 AM             3,152 detect_iso.pyc
23/02/2014  06:07 PM             2,048 dir
16/02/2014  07:30 PM    <DIR>          dist
08/12/2013  06:31 AM               230 install_distro.py

Update2

C:\Users\Sundar\Documents\multibootusb>iso9660.py i:\home\sundar\openSUSE-13.1-K
    DE-Live-x86_64.iso /ISOLINUX.CFG > file.cfg

这是file.cfg的内容

default openSUSE_13.1_KDE_Live
implicit 1
display isolinux.msg
.
.

1 个答案:

答案 0 :(得分:1)

看起来这是您正在使用的工具?

https://github.com/barneygale/iso9660/blob/master/iso9660.py

此工具执行以下两项操作之一:

  1. 打印ISO中的文件列表。
  2. 从ISO中提取一个文件。
  3. 就是这样。如果您希望它提取您看到的所有文件,则需要为每个文件调用一次。我不太了解cmd.exe脚本,但您可以获取iso9660.py的输出,它会打印每个文件并将其传输到for循环中,每个文件再次运行iso9660.py。

    根据OP的注释,跳过输出目录的唯一方法是跳过没有“。”的行。在他们中间。