Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File TCL-读取文件列_File_Tcl - Fatal编程技术网

File TCL-读取文件列

File TCL-读取文件列,file,tcl,File,Tcl,我试图将第1列从填充文件放到输出文件,但我得到了整行(输出文件)。如何将第一列放入输出文件 填充: Game1_1000 2002.1111 1000.1111 Game2_20001 1111.2222 1122.2222 Game3_2222 1111.3333 1111.2221 当前输出文件:(不是我想要的) 我希望输出文件如下所示: baseball Game1_1000 baseball Game2_20001 baseball Game3_2222 这是我的剧本

我试图将第1列从填充文件放到输出文件,但我得到了整行(输出文件)。如何将第一列放入输出文件

填充:

Game1_1000   2002.1111 1000.1111
Game2_20001  1111.2222 1122.2222
Game3_2222   1111.3333 1111.2221

当前输出文件:(不是我想要的)


我希望输出文件如下所示:

baseball Game1_1000
baseball Game2_20001
baseball Game3_2222 
这是我的剧本:

set infile [open "infile.txt" r]
set outfile [open "outfile.txt" w]

set lines [split [read -nonewline $infile] "\n"]
foreach line $lines {
    puts $outfile "Baseball"
}

您的脚本无法提供您在当前输出文件中所获得的输出,它应该仅生成一个带有
棒球
的文件

除此之外,您可以使用
lindex
,在空间上拆分行并获取第一个元素:

set infile [open "infile.txt" r]
set outfile [open "outfile.txt" w]

set lines [split [read -nonewline $infile] "\n"]
foreach line $lines {
    set columns [split $line " "]
    puts $outfile "baseball [lindex $columns 0]"
}

close $infile
close $outfile

您的脚本无法提供您在当前输出文件中所获得的输出,它应该仅生成一个带有
棒球
的文件

除此之外,您可以使用
lindex
,在空间上拆分行并获取第一个元素:

set infile [open "infile.txt" r]
set outfile [open "outfile.txt" w]

set lines [split [read -nonewline $infile] "\n"]
foreach line $lines {
    set columns [split $line " "]
    puts $outfile "baseball [lindex $columns 0]"
}

close $infile
close $outfile

您有一个输入文件,其中各行按空格序列拆分为字段。
split
命令不能处理这个问题;它在每个空间上拆分(在其他文件格式中,这是正确的选项)。因此,我们需要一个不同的步骤来将输入行调整为记录以进行处理

有多种方法可以做到这一点。我最喜欢的是使用
regexp
选择所有非空白序列作为单词(它有一个很好的短正则表达式,
\s+
):

完成后,您应该在编写代码时从代码的其余部分获得所需的内容


更复杂的拆分通常最好从Tcllib左到右。您在问题中描述的情况是,默认情况下,它是如何分割事物的,从而使使用它变得极其简单

package require textutil

set columns [textutil::splitx $line]

您有一个输入文件,其中各行按空格序列拆分为字段。
split
命令不能处理这个问题;它在每个空间上拆分(在其他文件格式中,这是正确的选项)。因此,我们需要一个不同的步骤来将输入行调整为记录以进行处理

有多种方法可以做到这一点。我最喜欢的是使用
regexp
选择所有非空白序列作为单词(它有一个很好的短正则表达式,
\s+
):

完成后,您应该在编写代码时从代码的其余部分获得所需的内容


更复杂的拆分通常最好从Tcllib左到右。您在问题中描述的情况是,默认情况下,它是如何分割事物的,从而使使用它变得极其简单

package require textutil

set columns [textutil::splitx $line]

还有其他方法可以进行复杂的文本拆分;他们中的大多数都有正则表达式的基础。它们是一个非常强大的工具,而且很容易被滥用;他们中的大多数都有正则表达式的基础。他们是一个非常强大的工具,很容易被滥用。这帮了大忙!我有一个文件,有两列,一个逗号作为分隔符,我把它拆分成“,”并得到了我的列。这很有帮助!我有一个文件,有两列,一个逗号作为分隔符,我把它拆分成“,”并得到了我的列。