Python:将输入文件中各行的最后一个单词追加到输出文件中各行的末尾

MapleMatrix

我有每日温度文件,我想合并为一年一次的文件。
例如输入文件

 Day_1.dat              
 Toronto  -22.5     
 Montreal -10.6  

 Day_2.dat            
 Toronto  -15.5  
 Montreal  -1.5  

 Day_3.dat      
 Toronto   -5.5
 Montreal  10.6  

所需的输出文件

Toronto  -22.5 -15.5 -5.5  
Montreal -10.6  -1.5 10.6

到目前为止,这是我为程序的这一部分编写的代码:

    #Open files for reading (input) and appending (output)
    readFileObj = gzip.open(readfilename, 'r') #call built in utility to unzip file for    reading
    appFileObj = open(outFileName, 'a')
      for line in readfileobj:
        fileString = readFileObj.read(line.split()[-1]+'\n') # read last 'word' of each line
        outval = "" + str(float(filestring) +"\n" #buffer with a space and then signal end of line
        appFileObj.write(outval) #this is where I need formatting help to append outval
阿什维尼乔杜里(Ashwini Chaudhary)

在这里,迭代fileinput.input允许我们迭代所有文件,一次获取一行。现在,我们将每行分隔为空白,然后使用城市名称作为关键字,将相应的温度(或该温度的任何值)存储在列表中。

import fileinput
d = {}
for line in fileinput.input(['Day_1.dat', 'Day_2.dat', 'Day_3.dat']):
    city, temp = line.split()
    d.setdefault(city, []).append(temp)

现在d包含:

{'Toronto': ['-22.5', '-15.5', '-5.5'],
 'Montreal': ['-10.6', '-1.5', '10.6']}

现在,我们可以简单地遍历此字典并将数据写入输出文件。

with open('output_file', 'w') as f:
    for city, values in d.items():
       f.write('{} {}\n'.format(city, ' '.join(values)))

输出:

$ cat output_file 
Toronto -22.5 -15.5 -5.5
Montreal -10.6 -1.5 10.6

请注意,字典没有任何特定顺序。因此,这里的输出本来可以是Montrealfirst,然后是Toronto如果顺序很重要,则需要使用collections.OrderedDict


您的代码的工作版本

d = {}
#Considering you've a list of all `gzip` files to be opened.
for readfilename in filenames:  
    #populate the dictionary by collecting data from each file
    with gzip.open(readfilename, 'r') as f:
        for line in f:
            city, temp = line.split()
            d.setdefault(city, []).append(temp)

#Now write to the output file
with open(outFileName, 'w') as f:
    for city, values in d.items():
       f.write('{} {}\n'.format(city, ' '.join(values)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法比较文件中的最后一个单词

来自分类Dev

Fscanf仅读取文件中的最后一个单词

来自分类Dev

如何在没有最后一个换行符的情况下将多行追加到文件中?

来自分类Dev

复制行中的单词并追加到另一个文件的行中

来自分类Dev

pyspark-将多个输入文件分为一个RDD和一个输出文件

来自分类Dev

根据列标题中的单词将多个文件中的列作为最后一个

来自分类Dev

使用Powershell将CSV文件追加到另一个文件的末尾

来自分类Dev

尝试将多个文件合并到一个目录时,显示“输入文件为输出文件”

来自分类Dev

在输出文件中搜索单词

来自分类Dev

文件中各行的总和

来自分类Dev

正则表达式匹配输出文件中的最后一个和第一个数字

来自分类Dev

将时间戳附加到功能中的输出文件

来自分类Dev

Python中的输出文件

来自分类Dev

递归地将文件添加到JList-仅添加最后一个文件夹中的文件

来自分类Dev

递归地将文件添加到JList-仅添加最后一个文件夹中的文件

来自分类Dev

将一个大文件追加到Node.js中的其他大文件

来自分类Dev

在文件名的末尾与字符串匹配的目录中查找最后一个文件

来自分类Dev

有没有办法将标准输入/标准输出文件转换成一个文件?

来自分类Dev

Fstream不会将最后一个单词保存在文件中,也不会从文件中读取

来自分类Dev

提取文本文件最后一行中的最后一个单词的脚本

来自分类Dev

独立排序文件夹中的所有文件,每个文件都有一个输出文件

来自分类Dev

合并csv文件,将原始文件名添加到输出文件中的每一行

来自分类Dev

从几个并行的LSF bsub作业中写入一个输出文件,避免同时写入

来自分类Dev

如何通过python将行追加到CSV文件中,并用逗号分隔新行和上一个

来自分类Dev

Python:将来自不同目录的文件输出附加到一个整体列表中

来自分类Dev

从输入值中删除最后一个单词

来自分类Dev

fwrite创建一个比输入文件大的输出文件

来自分类Dev

fwrite创建一个大于输入文件的输出文件

来自分类Dev

如果输入大于输出,`dd`会停止吗?(输出文件是一个分区)

Related 相关文章

  1. 1

    无法比较文件中的最后一个单词

  2. 2

    Fscanf仅读取文件中的最后一个单词

  3. 3

    如何在没有最后一个换行符的情况下将多行追加到文件中?

  4. 4

    复制行中的单词并追加到另一个文件的行中

  5. 5

    pyspark-将多个输入文件分为一个RDD和一个输出文件

  6. 6

    根据列标题中的单词将多个文件中的列作为最后一个

  7. 7

    使用Powershell将CSV文件追加到另一个文件的末尾

  8. 8

    尝试将多个文件合并到一个目录时,显示“输入文件为输出文件”

  9. 9

    在输出文件中搜索单词

  10. 10

    文件中各行的总和

  11. 11

    正则表达式匹配输出文件中的最后一个和第一个数字

  12. 12

    将时间戳附加到功能中的输出文件

  13. 13

    Python中的输出文件

  14. 14

    递归地将文件添加到JList-仅添加最后一个文件夹中的文件

  15. 15

    递归地将文件添加到JList-仅添加最后一个文件夹中的文件

  16. 16

    将一个大文件追加到Node.js中的其他大文件

  17. 17

    在文件名的末尾与字符串匹配的目录中查找最后一个文件

  18. 18

    有没有办法将标准输入/标准输出文件转换成一个文件?

  19. 19

    Fstream不会将最后一个单词保存在文件中,也不会从文件中读取

  20. 20

    提取文本文件最后一行中的最后一个单词的脚本

  21. 21

    独立排序文件夹中的所有文件,每个文件都有一个输出文件

  22. 22

    合并csv文件,将原始文件名添加到输出文件中的每一行

  23. 23

    从几个并行的LSF bsub作业中写入一个输出文件,避免同时写入

  24. 24

    如何通过python将行追加到CSV文件中,并用逗号分隔新行和上一个

  25. 25

    Python:将来自不同目录的文件输出附加到一个整体列表中

  26. 26

    从输入值中删除最后一个单词

  27. 27

    fwrite创建一个比输入文件大的输出文件

  28. 28

    fwrite创建一个大于输入文件的输出文件

  29. 29

    如果输入大于输出,`dd`会停止吗?(输出文件是一个分区)

热门标签

归档