白本羽 发表于 2021-4-17 11:16:25

关于文件路径的问题

本帖最后由 白本羽 于 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 == list2:
            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: No such file or directory: 'file_name1'
但是我的文件已经创建好了,路径也没错

顺便还有一个问题:
用open直接打开一个尚未生成的文本文件(不带路径),它的路径在哪?{:5_99:} {:5_111:}

qq1151985918 发表于 2021-4-17 11:31:04

转义了吧
把 \ 改成 / 试试

hrp 发表于 2021-4-17 11:31:24

第2、3行,括号里参数不要加引号

xiaosi4081 发表于 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 == list2:
            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)

阿奇_o 发表于 2021-4-17 16:12:39

楼上已经说对了,
第2、3行,括号里参数不要加引号

得分清 函数的形参,和 实参 。
页: [1]
查看完整版本: 关于文件路径的问题