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

Adding an x number of new lines to the end of a file Python

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

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  

到目前为止 returns 这是所有不包含 144 行的文件的列表。我想要做的是,如果文件中没有 144 行(例如说它有 127 行),那么我想在文件末尾添加 's' 个空行以使其具有144 行。然后我想屏蔽文件中的所有行,以便为我想用它做的事情保持形状,但这些行不会用于某些计算。有没有办法在此循环中添加一个语句,将 's' 个空行添加到文件末尾,以及一个屏蔽坏文件中每一行的语句?有没有我应该考虑的更简单的方法来实现我想做的事情?

如果您真的不需要处理文件名列表,那么这可以折叠为:

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))

请注意,您不能执行 filename.write(),因为文件名是一个字符串。 write 作用于文件描述符。