python - 从文本文件中提取每行的一部分

时间:2018-04-18 16:58:43

标签: python file

我有一个test.txt文件,其中包含:

blue.purple
blue.red

我想在output.txt上找到每一行的第二部分和第三部分,如下所示:

with open ('test.txt', 'r') as file1, open('output.txt', 'w') as file2:
    for line in file1:
        file2.write(line.partition('.')[2]+ '\n')

这是python代码:

blue.purple.green
blue.red.purple

但结果是:

<script type="text/javascript">
jQuery(document).ready(function(){
var month = new Date().getMonth()+1;
if(month >=2 && month <=4){
 jQuery('.off-season-hours .mbhi-is-current').removeClass('mbhi-is-current');
}else{
 jQuery('.on-season-hours .mbhi-is-current').removeClass('mbhi-is-current');
}
});
</script>

怎么可能只采用每一行的第二和第三部分?

由于

2 个答案:

答案 0 :(得分:4)

你可能想要

with open('test.txt', 'r') as file1, open('output.txt', 'w') as file2:
    for line in file1:
        file2.write(".".join(line.split('.')[1:3])+ '\n')

split('.')应用于该行时,例如yellow.blue.purple.green,您会得到一个值列表

["yellow", "blue", "purple", "green"]

通过切片[1:3],您可以获得第二项和第三项。

答案 1 :(得分:0)

首先,我创建了一个.txt文件,该文件与您在原始.txt文件中输入的数据相同。我用的是&#39; w&#39;模式来编写您已经知道的数据。我创建了一个空列表,我们将用它来存储数据,然后写入output.txt文件。

output_write = [] 

with open('test.txt', 'w') as file_object:
    file_object.write('yellow.' + 'blue.' + 'purple.' + 'green')
    file_object.write('\nred.' + 'blue.' + 'red.' + 'purple')   

接下来,我打开了我创建并使用的文本文件&#39; r&#39;正如您所知,模式可以读取文件中的数据。为了获得你想要的输出,我在for循环中读取文件的每一行,并且对于每一行我分割该行以创建该行中的项目列表。我根据每个项目之间的时间段分割它们(&#39;。&#39;)。接下来你想得到行中的第二和第三项,所以我创建了一个存储索引[1]和索引[2]的变量,名为new_read。在我们将拥有您想要的两个数据之后,您可能希望写入输出文件。我将此数据存储在名为output_data的变量中。最后,我将输出数据附加到我们之前创建的空列表中。

with open ('test.txt', 'r') as file_object:
    for line in file_object:
        read = line.split('.')
        new_read = read[1:3]
        output_data = (new_read[0] + '.' + new_read[1])
        output_write.append(output_data)

最后,我们可以将此数据写入名为&#39; output.txt&#39;的文件中。如前所述。

with open('output.txt', 'w') as file_object:
    file_object.write(output_write[0])
    file_object.write('\n' + output_write[1])
    print(output_write[0])
    print(output_write[1])

最后我打印数据只是为了检查输出:

blue.purple
blue.red