gpt4 book ai didi

c# - 如何从标准的命令行参数中读取文件? (模拟 Python 的文件输入)

转载 作者:太空狗 更新时间:2023-10-29 20:10:45 24 4
gpt4 key购买 nike

我希望我的应用程序从命令行参数或标准输入指定的文件中读取,以便用户可以使用它 myprogram.exe data.txtotherprogram.exe | myprogram.exe .我如何在 C# 中执行此操作?


在 Python 中,我会写

import fileinput
for line in fileinput.input():
process(line)

This iterates over the lines of all files listed in sys.argv[1:], defaulting to sys.stdin if the list is empty. If a filename is '-', it is also replaced by sys.stdin.

Perl 的 <>和 Ruby 的 ARGF同样有用。

最佳答案

stdin 通过 Console.In 作为 TextReader 向您公开。只需为使用 Console.In 或您选择的文件的输入声明一个 TextReader 变量,然后将其用于所有输入操作。

static TextReader input = Console.In;
static void Main(string[] args)
{
if (args.Any())
{
var path = args[0];
if (File.Exists(path))
{
input = File.OpenText(path);
}
}

// use `input` for all input operations
for (string line; (line = input.ReadLine()) != null; )
{
Console.WriteLine(line);
}
}

否则,如果重构使用这个新变量的成本太高,您总是可以使用 Console.SetIn()Console.In 重定向到您的文件。

static void Main(string[] args)
{
if (args.Any())
{
var path = args[0];
if (File.Exists(path))
{
Console.SetIn(File.OpenText(path));
}
}

// Just use the console like normal
for (string line; (line = Console.ReadLine()) != null; )
{
Console.WriteLine(line);
}
}

关于c# - 如何从标准的命令行参数中读取文件? (模拟 Python 的文件输入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12771347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com