gpt4 book ai didi

python - 如何检查两个文件中的行是否相互包含

转载 作者:行者123 更新时间:2023-12-01 03:45:09 24 4
gpt4 key购买 nike

我是 python 新手,在比较两个文件并以 bool 形式获取输出时遇到问题。我在这里看到的建议很少,但由于应用知识较少,我想我无法平静下来。这两个权限相关的文本文件需要进行比较

第一个文本文件:perm.txt

ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
ACCESS_NETWORK_STATE
BLUETOOTH
CAMERA
CHANGE_WIFI_STATE
EXPAND_STATUS_BAR
GET_ACCOUNTS
GET_TASKS
MANAGE_DOCUMENTS
READ_EXTERNAL_STORAGE
READ_LOGS
RECORD_AUDIO
SET_WALLPAPER
USE_CREDENTIALS
VIBRATE
WRITE_CALENDAR
<小时/>

第二个文本文件文件:op3.txt

GET_TASKS
EXPAND_STATUS_BAR
SET_WALLPAPER
CAMERA
MANAGE_DOCUMENTS
READ_EXTERNAL_STORAGE
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
CHANGE_WIFI_STATE
VIBRATE
RECORD_AUDIO

我需要将第二个文件权限与第一个文件进行比较,并根据比较,如果两个文件中的权限相同,则输出应为“1”或“True”,否则应为“0”或“False”

我尝试使用以下代码

f1 = open('op2.txt', 'r')
f2 = open('permissions.txt', 'r')
FO = open('out1.txt', 'w')

for line1 in sorted(f2):
if line1 is f1:
FO.write(line1 + "True" + '\n')
else:
FO.write(line1 + "False" + '\n')

FO.close()
f1.close()
f2.close()

我最初尝试过的另一次尝试能够获得两个或三个权限的输出,我以不同的方式尝试过,但最终无法获得它,我在这一点上击中了

fname1 = input("Enter the first filename: ")
fname2 = input("Enter the second filename: ")


f1 = open(fname1)
f2 = open(fname2)


print("-----------------------------------")
print("Comparing files ", " > " + fname1, " < " + fname2, sep='\n')
print("-----------------------------------")


f1_line = f1.readline()
f2_line = f2.readline()

line_no = 1

# Loop if either file1 or file2 has not reached EOF
while f1_line != '' or f2_line != '':


f1_line = f1_line.rstrip()
f2_line = f2_line.rstrip()


if f1_line != f2_line:

# If a line does not exist on file2 then mark the output with false
if f2_line == '' and f1_line != '':
print("false", "Line-%d" % line_no, f1_line)
# otherwise output the line on file1 and mark it with > sign
elif f1_line != '':
print("True", "Line-%d" % line_no, f1_line)



# Print a blank line
print()

# Read the next line from the file
f1_line = f1.readline()
f2_line = f2.readline()


line_no += 1


f1.close()
f2.close()

最佳答案

如果你只需要快速快速的字符串比较,为什么不使用散列(md5/sha1)呢?

对行进行排序,然后使用如下内容:

import md5

m1 = md5.md5(file1_str)
m2 = md5.md5(file2_str)

if m1.hexdigest() == m2.hexdigest():
....
else:
....

关于python - 如何检查两个文件中的行是否相互包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39053697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com