Python 将一个txt文件中的字符串与另一个txt文件中的字符串进行比较
我正在编写一个脚本,将用于日常自动化 我有两个文件,一个是包含CUSIP列表的静态文件。第二个文件是一个类似以下内容的数据文件:Python 将一个txt文件中的字符串与另一个txt文件中的字符串进行比较,python,string,python-3.x,Python,String,Python 3.x,我正在编写一个脚本,将用于日常自动化 我有两个文件,一个是包含CUSIP列表的静态文件。第二个文件是一个类似以下内容的数据文件: 所以我要做的是迭代静态文件的每个cusip,并检查它是否在上面的任何一行中。如果找到该行,则我们将从新文件中删除该行 import csv bond_list = 'BondFilterList.txt' #containes list of cusips dataport_file = 'test.scx' #contained the <
所以我要做的是迭代静态文件的每个cusip,并检查它是否在上面的任何一行中。如果找到该行,则我们将从新文件中删除该行
import csv
bond_list = 'BondFilterList.txt' #containes list of cusips
dataport_file = 'test.scx' #contained the <SCX... data
output_file = 'out.scx'
data = []
with open(bond_list, 'r') as bl, open(dataport_file, 'r') as df:
for cusip in bl:
lines = [y.strip() for y in df]
for line in lines:
if cusip in line:
print("Matched")
else:
data.append(line)
with open(output_file, "w") as output:
writer = csv.writer(output, lineterminator = '\n', escapechar = ' ', quoting = csv.QUOTE_NONE)
for x in data:
writer.writerow([x])
output.close
导入csv
bond_list='BondFilterList.txt'#包含CUSIP列表
dataport_file='test.scx'#包含
这是两个文件迭代器上的双循环。内部循环只有在第一次时才能正常工作。其他时候它甚至不会输入,因为df
到达了文件的末尾
重写:
lines = [y.strip() for y in df] # listcomp not gencomp: compute a real list
for cusip in bl:
for line in lines:
这是我的最后代码,再次感谢Jean的帮助
import csv
bond_list = 'BondFilterList.txt' #containes list of cusips
dataport_file = 'test.scx' #contained the <SCX... data
output_file = 'out.scx'
data = []
with open(bond_list, 'r') as bl, open(dataport_file, 'r') as df:
lines = [y.strip() for y in df]
cusips = [cusip.upper().strip() for cusip in bl]
for line in lines:
if not any(cusip in line for cusip in cusips):
data.append(line)
with open(output_file, "w") as output:
writer = csv.writer(output, lineterminator = '\n', escapechar = ' ', quoting = csv.QUOTE_NONE)
for x in data:
writer.writerow([x])
output.close
导入csv
bond_list='BondFilterList.txt'#包含CUSIP列表
dataport_file='test.scx'#包含您的内部循环中的行(df中y的y.strip())
在第一次迭代时使用文件迭代器。请改为创建一个列表。谢谢,由于某些原因,我仍然无法获得任何匹配项,并且if语句在每行上都返回false。我将打印(cusip,line)
就在if cusip in line:
之前。这应该很有教育意义。中大奖!谢谢你的指导!
import csv
bond_list = 'BondFilterList.txt' #containes list of cusips
dataport_file = 'test.scx' #contained the <SCX... data
output_file = 'out.scx'
data = []
with open(bond_list, 'r') as bl, open(dataport_file, 'r') as df:
lines = [y.strip() for y in df]
cusips = [cusip.upper().strip() for cusip in bl]
for line in lines:
if not any(cusip in line for cusip in cusips):
data.append(line)
with open(output_file, "w") as output:
writer = csv.writer(output, lineterminator = '\n', escapechar = ' ', quoting = csv.QUOTE_NONE)
for x in data:
writer.writerow([x])
output.close