代码之家  ›  专栏  ›  技术社区  ›  HM14

在文件Python的末尾添加x个新行数

  •  0
  • HM14  · 技术社区  · 8 年前

    我有多个文件正在循环。如果一个单独的文件没有特定的长度,那么我想屏蔽该文件中的行,这样它就不会被使用,但在将来需要进行的某些计算中,形状保持不变。到目前为止,这是我拥有的代码:

    pattern = "C:\Users\Name\Folder\july\mid_2014-07-2?-00.csv"
    bad_files=[]
    for filename in glob.iglob(patterm):
        num_lines = sum(1 for line in open(filename))
        if num_lines!=144:
            s = 144 - num_lines
            bad_files.append(filename)
    print bad_files  
    

    到目前为止,这将返回所有文件的列表,其中没有144行。我想做的是,如果文件中没有144行(例如,它有127行),那么我想在文件的末尾添加'的空行数,使其有144行。然后,我想遮罩文件中的所有行,以便根据我想要的操作保持形状,但在某些计算中不会使用这些行。有没有一种方法可以在这个循环中添加一条语句,在文件末尾添加“”的空行数,以及一条语句来屏蔽坏文件中的每一行?有没有一个更简单的方法来实现我想做的事情,我应该考虑?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Prune    8 年前

    如果您确实不需要处理文件名列表,则可以将其折叠为:

    for filename in glob.iglob(pattern):
        with open(filename, 'r+a') as fd:
            for num_lines, line in enumerate(fd): pass
            # num_lines is now one *less* that the actual line count.
            fd.write('\n' * max(0, 144 - num_lines))
    

    请注意,您不能这样做 文件名.write() 因为文件名是字符串。 用于文件描述符。