我试图在文件名中找到一个字符串斯堪的纳维亚() 就像“ilikecake15.pdf”或“ilike1615”中的字符串“15”蛋糕.pdf'字符串是唯一的。 此代码的背景:我有几个带有PDF的文件夹,需要与列表匹配。文件名包含列表中的部分字符串。 我想使用for循环就可以了,一个从txt获取信息的循环。另一个来自斯堪的纳维亚()和find()进行检查!= -1. 你知道吗
疑难解答给med留下了两个.txt值,我试图将它们与s.find(ins)进行比较。我的目标是解决问题!= -1. 如果我定义v1和v2并执行v1.find(v2)的话,这似乎是可行的,但是在一个嵌套的for循环中,所有的结果都是-1。(即使我看到了正确的对决) 我已经用[xx]从文本文件中删除了G:\thispath\和\thispath这样的路径信息。甚至可以尝试将str()添加到几乎所有内容中(以防万一)
import os
tdpath = 'G:\Somepathwithalotofpdfs'
tdfiles = 'G:\Anothersuitablepath/tdfiles.txt'
tdlines = 'G:\Anothersuitablepath/tdlines.txt'
with os.scandir(tdpath) as pth, open(tdfiles, 'w') as fls:
for td in pth:
if td.is_file():
fls.write(str(os.fsdecode(td)[51:])) #str and [51:] added to help troubleshoot
fls.write('\n')
with open(tdlines) as fp, open(tdfiles) as fls:
for cnt, line in enumerate(fp):
for cmt, lajn in enumerate(fls):
print(lajn, line) #just troubleshooting
print(str(lajn).find(str(line))) #just troubleshooting
if lajn.find(line) != -1:
print('KASWSOFJIDFHAIFHSIHFIAHS') # Hlep ples
这已经变成了一个怪物,而试图解决它。但预期的结果是在从文件中找到匹配项时打印后一条语句tdlines.txt文件在tdfiles.txt文件你知道吗
我不确定我是否完全理解你所描述的问题的本质,但我确实看到一件事,几乎可以肯定的是,它的行为并不像你所期望的那样。你知道吗
一旦您遍历一个打开的文件对象的所有行,再次尝试遍历它将不会产生任何结果,因为跟踪文件中工作位置的内部指针现在位于末尾。因此,对于
tdlines
的第一行,您的循环将按预期运行,但是对于其余的行,内部for
循环将永远不会运行。你知道吗解决方案是通过} 回到文件的开头,就在内部
tdlines
在每次迭代中关闭并重新打开tdfiles
,或者^{for
循环之前。以下是后一种方法:相关问题 更多 >
编程相关推荐