鱼C论坛

 找回密码
 立即注册
查看: 2218|回复: 4

[已解决]关于文件路径的问题

[复制链接]
发表于 2021-4-17 11:16:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 白本羽 于 2021-4-17 11:20 编辑
def compare(file_name1,file_name2):
    f1 = open('file_name1')
    f2 = open('file_name2')
    list1 = []
    list2 = []
    list3 = []
    for each_line in f1:                                 #将f1中的行以元素存到列表list1中
        list1.append(each_line)
    for each in f2:                                        #将f2中的行以元素存到列表list2中
        list2.append(each)
    num = 0
    for i in range(len(list1)):                          #比较元素是否相同,并记录不同的行数和不同的次数在list3中
        if list1[i] == list2[i]:
            continue
        else:
            list3.append(i)
            num += 1
    print('两个文件共有%s个不同' % num)
    for i in list3:
        print('第%s行不一样\n' % i)


file_name1 = input('请输入第一个需要比较的文件名:')
file_name2 = input('请输入另一个需要比较的文件名:')
compare(file_name1,file_name2)
不管我输入E:\\1.txt,E:\\2.txt,还是直接1.txt,2.txt,都会报同一个错误
FileNotFoundError: [Errno 2] No such file or directory: 'file_name1'
但是我的文件已经创建好了,路径也没错

顺便还有一个问题:
用open直接打开一个尚未生成的文本文件(不带路径),它的路径在哪?
最佳答案
2021-4-17 15:48:09
def compare(file_name1,file_name2):
    f1 = open(file_name1)
    f2 = open(file_name2)
    list1 = []
    list2 = []
    list3 = []
    for each_line in f1:                                 #将f1中的行以元素存到列表list1中
        list1.append(each_line)
    for each in f2:                                        #将f2中的行以元素存到列表list2中
        list2.append(each)
    num = 0
    for i in range(len(list1)):                          #比较元素是否相同,并记录不同的行数和不同的次数在list3中
        if list1[i] == list2[i]:
            continue
        else:
            list3.append(i)
            num += 1
    print('两个文件共有%s个不同' % num)
    for i in list3:
        print('第%s行不一样\n' % i)


file_name1 = input('请输入第一个需要比较的文件名:')
file_name2 = input('请输入另一个需要比较的文件名:')
compare(file_name1,file_name2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-17 11:31:04 | 显示全部楼层
转义了吧
把 \ 改成 / 试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-17 11:31:24 From FishC Mobile | 显示全部楼层
第2、3行,括号里参数不要加引号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2021-4-17 15:48:09 | 显示全部楼层    本楼为最佳答案   
def compare(file_name1,file_name2):
    f1 = open(file_name1)
    f2 = open(file_name2)
    list1 = []
    list2 = []
    list3 = []
    for each_line in f1:                                 #将f1中的行以元素存到列表list1中
        list1.append(each_line)
    for each in f2:                                        #将f2中的行以元素存到列表list2中
        list2.append(each)
    num = 0
    for i in range(len(list1)):                          #比较元素是否相同,并记录不同的行数和不同的次数在list3中
        if list1[i] == list2[i]:
            continue
        else:
            list3.append(i)
            num += 1
    print('两个文件共有%s个不同' % num)
    for i in list3:
        print('第%s行不一样\n' % i)


file_name1 = input('请输入第一个需要比较的文件名:')
file_name2 = input('请输入另一个需要比较的文件名:')
compare(file_name1,file_name2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-17 16:12:39 | 显示全部楼层
楼上已经说对了,
第2、3行,括号里参数不要加引号


得分清 函数的形参,和 实参 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 02:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表