逐行比较第一个文件和rest python beginn

2024-10-02 22:27:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近开始学习python,需要一些帮助。我想将目录中的第一个文件与同一目录中的其他文件进行比较。我最近学习了循环,所以我想做这个项目只使用循环,没有像交叉点,我发现使用谷歌花哨的功能。你知道吗

这是我目前的代码。我遇到的问题是如何实现计数器。我想计数器增加1后,前两个文件已比较。在我看来,这将允许将第一个文件与目录中的第三个文件进行比较。你知道吗

最终我想要有两个计数器,一个用于第一个文件,一个用于第二个文件。将第一个文件与目录中的所有文件进行比较后,第一个文件计数器将增加1,循环将重新启动,现在第二个文件将与文件3、然后是文件4进行比较,依此类推。。等等。你知道吗

谢谢你的帮助!你知道吗

path = ("/my/dir/")
files = os.listdir( path )
number_files = len(files)

while (n < (number_files)):
    count = 1
    file1 =  open(path+files[0], 'r')
    file1read = file1.read().splitlines() 
    file2 = open(path+files[count], 'r')
    file2read = file2.read().splitlines() 
    for i in file1read:
        for j in file2read:
            if i == j:
                print (os.path.basename(file1.name)+"_"+os.path.basename(file2.name)+" have {} in common".format(j))
                count = count + 1
                n = n + 1
        else:
            count = count + 1
            n = n + 1

Tags: 文件pathin目录numberreadoscount
1条回答
网友
1楼 · 发布于 2024-10-02 22:27:25

首先,注意listdir()返回文件夹中的所有文件和文件夹。可以改用os.walk(),它返回一个包含3个值的元组,其中第三个值包含文件名。第二个问题是在while循环中声明变量count并用1初始化,因此每次再次进入循环时,它都会重置为1。你应该在while循环之前移动它。你知道吗

相关问题 更多 >