如何更改此python代码以忽略Mac OS的.DS_Store文件?
class MySentences(object):
def __init__(self, dirname):
self.dirname = dirname
def __iter__(self):
for fname in os.listdir(self.dirname) if not fname.startswith('.'):
for line in open(os.path.join(self.dirname, fname)):
yield line.split()
编辑:这个问题看起来很像这个问题(How to ignore hidden files using os.listdir()?),但我不知道如何在上面的类中实现该解决方案。我试过这个:
library(stackr)
questions <- stack_users(9371451, "questions", num_pages=10, pagesize=100, filter="withbody")
for (i in 1:nrow(questions)) {
qtext <- questions$body[i]
print(qtext)
}
但它不起作用。
答案 0 :(得分:0)
您可以通过检查文件名不相等(!=
)到&#34; DS_Store&#34;来使用if语句:
class MySentences(object):
def __init__(self, dirname):
self.dirname = dirname
def __iter__(self):
for fname in os.listdir(self.dirname):
if fname != '.DS_Store':
for line in open(os.path.join(self.dirname, fname)):
yield line.split()
如果文件名与此字符串相同,那么只需触发该循环,而不会触及嵌套的for
语句。