0
該程序讀取一個大型的文本文件目錄。每個文件將被搜索一個特定的字符串(一個美元數字,精確到兩位小數)。 我運行下面的代碼其目的是確定一個特定的金額是在文本文件中:從Python 3.x中的字典中搜索嚴格的字符串
d = {}
with open('numbers.txt') as f:
d = dict(x.rstrip().split(None, 1) for x in f)
import os
for filename in os.listdir(os.getcwd()):
string = d.get(filename, "[email protected]#$%^&*")
if string in open(filename, 'r').read():
with open("outfile.txt", 'a') as out:
out.write("{} {} {}\n".format(filename, string, 1))
else:
with open("ibes_in.txt", 'a') as out:
out.write("{} {} {}\n".format(filename, string, 0))
numbers.txt包含文件名(.txt文件)和美元數額的列表。美元金額字符串將在文件的文件中或他們不會。
大多數情況下,這段代碼的工作原理是完美的,只是它找到了與美分兩位數以上的數字匹配。例如,如果搜索字符串是1.42,我不希望它匹配1.423。
如果搜索字符串是1.42
樣品輸入:
「該公司公佈的... 1.42 $」
樣品結果:真
樣品輸入:
「該公司增長1.427 ...」
樣本結果:假
美元符號的使用不是通用的,有時候數字被封裝在()中以表示否定。我相信正則表達式\ b是標記兩位數字結尾的正確方法,但我不確定如何在我已有的代碼中實現它。
謝謝這個替換>>>>如果字符串中打開(文件名,「R」)閱讀():?它是否需要其他更改? – prizmracer11
的確,它取代了這一點,而且不需要其他更改。 – trincot