您可能知道,在运行python脚本并输入:
时>> <file-name>
名为&lt;的文件文件名称&gt;将在脚本目录中创建,此脚本的所有stdin输出将定向到此文件。
我想在脚本中添加一个功能(当使用重定向操作符时)将在我选择的另一个目录中提取文件。你知道怎么做吗?
答案 0 :(得分:0)
只需提供您要将输出重定向到的目录的全名。
echo hello world >> <full path of directory>/<name of output file>
答案 1 :(得分:0)
相对于当前目录创建文件。您可以使用os.chdir
更改当前目录。
答案 2 :(得分:0)
当你从一个Sheel运行任何命令并使用>>
重定向操作符,或者实际上任何标准|
,>
和类似的操作符时,正在执行重定向是 shell ,而不是Python。
这意味着Python解释器将不具有有关用于重定向的文件名的任何信息。而且,因为文件创建和文件管理是由shell完成的,所以你不能(也不应该)干扰它。我认为你不会被允许,用户也不会期待任何诡计。
如果要根据输出重定向的事实来调整应用程序的行为,请查看sys.stdout.isatty()
方法,如果已从中调用脚本,则返回True
一个互动的tty。重定向输出后,它将返回False
。但是,请注意,有一些场景isatty()
将返回false,但原因不是重定向运算符(如管道运算符,或者包含对脚本的调用的第三个脚本)。
当然,您可以避免重定向运算符并为脚本使用一些参数。没有任何进一步的信息,我建议这样做,这样你就可以完全控制行为,你可以记录它(而不是依赖shell的东西,可能是也可能不是便携式和灵活的。)