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