【求助,急】python文件保存出错,

  • j
    justincnn
    我写了一段python小爬虫程序,在mac os下可以正常保存文件,但是win下面保存出错,具体代码如下:
    xl.save(path_1 + '/'+str(name_exl) + '.xlsx')
    错误提示:

    OSError: [Errno 22] Invalid argument: 'C:/Users/Justin Ye/Desktop/2020-02-29 16:15:08.xlsx'

    google了下,应该是\和/的问题,

    我把代码修改为:

    xl.save(path_1 + '\\'+str(name_exl) + '.xlsx')
    还是不行,

    其中path_1是用户在图形界面选择的文件保存路径,

    请大神告知下处理办法,万分感谢啊
  • j
    jckimi
    path_1打印出来看看,这里感觉好有问题 Kimi
  • A
    Aakarshan
    win下得用“/”吧,试试r"path"
  • A
    Aakarshan
    win下命名不能用半角:
  • j
    justincnn
    回复2#jckimi


    print之后输出是:C:/Users/Justin Ye/Desktop/
  • j
    justincnn
    回复3#Aakarshan

    修改为:
    xl.save(r'path_1' + r'/'+str(name_exl) + '.xlsx')
    或者

    xl.save(r'{path_1}' + r'/'+str(name_exl) +
    '.xlsx')
    都试过,还是不行
  • w
    wsyx87930
    明显path1后多了一条/
  • b
    bartonhong
    你path1屁股上已经有斜杠了,再加一条不就找不到路径了嘛
  • t
    tom33
    时间的冒号去掉,冒号不能作为文件名
  • j
    justincnn
    回复8#bartonhong

    修改为:
    xl.save(path_1 + str(name_exl) + '.xlsx') #调用global函数跳错为:

    OSError: [Errno 22] Invalid argument: 'C:/Users/Justin Ye/Desktop2020-02-29 16:39:27.xlsx'
    把那个斜杠去掉之后 ,desktop和保存的文件名之间就没有分隔符号了,


    win下和macos下转换怎么那么麻烦的
  • w
    wsyx87930
    你自己用/手工组成路径容易出错,python不是有路径函数的嘛
  • j
    justincnn
    回复9#tom33

    谢谢,
    这个是win的要求么?mac下可以正常 保存的啊,
    把time的格式换了之后,不挑错了,谢谢,不过在desktop下,还是没有保存到文件,应该save没有抓取的path_1的目录,请问这个如何解决啊
  • R
    RelaxEgg
    你先把name_exl改成一般字符试试 总感觉日期加时间空格不一定靠谱HiPDA·NG
  • j
    justincnn
    回复11#wsyx87930

    谢谢指导,。

    以前学python都是在mac下,没想到改到win下面那么麻烦,原来的代码在mac下没有任何问题的,可否告知下该如何修改啊
    path_1的获取函数为:
    #选择输出目录
    def selectPath():
    global path_1
    path_1=askdirectory()
    path.set(path_1)
    print(path_1) #======== >>>>>需要设为全局变量

    path = StringVar()


    foldlabel=tkinter.Label(app,text = 'output path')

    foldentry=tkinter.Entry(app,textvariable = path)

    foldbutton=tkinter.Button(app,text = 'select the path',command = selectPath)
    foldlabel.pack()
    foldentry.pack()
    foldbutton.pack()
  • l
    lwjef
    from pathlib import Path
  • j
    justincnn
    回复15#lwjef


    嗯嗯,我试试,谢谢啊
  • R
    Ricepig
    应该是文件名里的冒号问题HiPDA·嗯唧
  • f
    fixcom
    文件名里面不要空格和冒号
  • t
    tom33
    mac下手动重命名也不行,win下这种要求就更多了。
    反正这些符号能替掉就替掉,免得麻烦,下划线就是一切