【问题标题】:Pass a file list from PowerShell to Python script via stdin通过标准输入将文件列表从 PowerShell 传递到 Python 脚本
【发布时间】:2016-02-18 13:34:18
【问题描述】:

我想创建一个 Python 脚本,我可以将文件名通过管道输入,所以它可以像这样使用:

ls *.csv | python .\myscript.py

我知道我可以使用fileinputsys.stdin 读取标准输入,但由于输出是在格式化表中:

    Directory: C:\path\to\csv


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       15.02.2016     10:18           4755 data_1.csv
-a----       15.02.2016     10:18            522 data_2.csv

我必须解析它。

由于这似乎是一种常见的模式,我希望有一个标准的解决方案。如果可以的话,我想避免自己写,但我一直找不到。

(如果它很重要,我会在 Windows 10 上的 PowerShell 中运行它。)

编辑:我在问我是否缺少一些库或模式,因为这种将文件路径管道传输到脚本的特定(并且看似很常见)的场景。如果没有必要,我想避免编写解析代码。

【问题讨论】:

  • 我反对这是该问题的重复。对于这种特定(并且看似很常见)的场景,我问是否缺少一些库或模式。
  • 您可能想找到一种仅获取文件名的方法:从 PowerShell 解决这个问题,而不是从 Python 中获取每行文件。
  • “ls *.csv | fl”是否只显示每个文件名而不显示元数据?我附近没有 Windows 系统可以试试这个。
  • 你想向 Python 传递什么?只是文件名:ls *.csv | % FullName | python .\myscript.py?

标签: windows powershell python-3.x


【解决方案1】:

根据谷歌搜索和您的善良 cmets,似乎最好在将其传递给实际 Python 脚本之前进行过滤。那我就坚持下去吧。

【讨论】:

    猜你喜欢
    • 2011-02-15
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多