【发布时间】:2016-06-06 20:58:03
【问题描述】:
我有多个要循环的文件。如果单个文件没有一定的长度,那么我想屏蔽该文件中的行,以便不使用它,但是对于我将来需要做的某些计算,形状保持不变。到目前为止,这是我拥有的代码:
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 行),那么我想在文件末尾添加 's' 的空白行数以使其有 144 行.然后我想屏蔽文件中的所有行,以便为我想要使用它做的事情保持形状,但这些行不会用于某些计算。有没有办法在这个循环中添加一条语句,在文件末尾添加“s”个空行,以及一条屏蔽坏文件中每一行的语句?有没有更简单的方法来实现我应该考虑的目标?
【问题讨论】:
-
这个我没测试过,但是不禁想知道是不是像
filename.write('\n' * s)这么简单。 -
@MattCremeens 它有效。刚刚启动了解释器并对其进行了测试。
-
谢谢@ThomasMurphy。另外,不确定“...屏蔽坏文件中的每一行”是什么意思?
-
您确定没有文件的行数超过总行数吗?
-
感谢您回答我的问题的第一(大部分)部分以添加“s”行数!我所说的掩码的意思是我想看看我是否可以使用 numpy.ma 掩码函数来隐藏坏文件中的值。据我了解,这使我可以在不使用这些值进行计算的情况下保持一切相同的形状。我确定没有超过 144 行的文件。