Macos 在某些文本文件中搜索单词的代码在第一个.rtf文件之前停止
我正在尝试制作一个程序,在一些.rtf文件中查找单词 e、 g:我有一些文本编辑文件,其中包含以所有字符开头的所有单词(WordsWhichStartsWithA.rtf、WordsWhichStartsWithB.rtf、WordsWhichStartsWithC.rtf等),当我给出一个单词(例如:“help”)时,我想返回给定单词所在的文件(在本例中为“help”)将在WordsWhichStartsWithH.rtf文件中,程序将返回WordsWhichStartsWithH.rtfNOTWordsWhichStartsWithW.rtf其中“whelp”是,我只想找到单词,而不是包含给定单词的字符串) 以下是我到目前为止的情况:Macos 在某些文本文件中搜索单词的代码在第一个.rtf文件之前停止,macos,python-2.7,Macos,Python 2.7,我正在尝试制作一个程序,在一些.rtf文件中查找单词 e、 g:我有一些文本编辑文件,其中包含以所有字符开头的所有单词(WordsWhichStartsWithA.rtf、WordsWhichStartsWithB.rtf、WordsWhichStartsWithC.rtf等),当我给出一个单词(例如:“help”)时,我想返回给定单词所在的文件(在本例中为“help”)将在WordsWhichStartsWithH.rtf文件中,程序将返回WordsWhichStartsWithH.rtfNO
import os
for fname in os.listdir('/Users/andreivaran/Desktop/Info'):
if os.path.isfile(fname):
#print fname
with open(fname) as f:
for line in f:
if 'help' in line:
print fname
break
在第一个if
检查路径是否为file之前,我已经打印了fname
,以确定代码是否检查了所有文本文件,我得到了这个结果
>>>.DS_Store
WordsWhichStartsWithA.rtf
它返回了我在文件夹中看不到的.DS_存储,并且它没有检查所有的.rtf文件,它在第一个文件之后停止
忘记提到.rtf文件所在的目录与python文件所在的目录不同
谢谢大家!
.DS\u Store
文件是MacOS上的隐藏文件,打开该目录中的终端应用程序
,键入ls-al.
,它应该显示.DS\u Store
文件。然后键入rm.DS_Store
应该删除它,然后你可以重新运行你的python脚本。或者使用如果os.path.isfile(fname)而不是fname.startswith('.'):
是的,谢谢,我已经成功删除了.DS_Store文件,但是我的代码仍然在第一个文件之前停止,并且没有返回任何东西,对吗,您仍然需要使用.readlines()
读取文件,因此将f中的行的更改为f中的行的。readlines():
,然后重试。