在第6次尝试使用python时,在网络共享上打开文件失败

2024-04-26 12:25:17 发布

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

我有一个脚本,可以将数据写入另一台服务器上的文件共享。我正在为网络共享上的单独数据集打开一个单独的文件并保存它。问题是在循环中的第5个文件之后,打开失败:

Exception has occurred: OSError[Errno 22] Invalid argument: 
'\\\\file-storage\\storage\\waystar\\active\\ID-143892-Active.txt'
File "D:\AGB\test.py", line 7, in <module>
          with open(fn,'w') as f:

我尝试直接映射到IP地址而不是网络共享名。我试着把它映射到服务器上的驱动器号。我创建了下面的测试代码来重现这个问题。你知道吗

import os
activedir=r'\\file-storage\storage\waystar\active'
IDs=['123457','123458','123459','143890','143891','143892']
for id in IDs:
    fn=activedir+r'\ID-'+id+'-Active.txt'    
    with open(fn,'w') as f:
        f.write("Hello World - what a bunch of crap.")

我想知道为什么它在列表的最后一个文件上失败了。前5项工作正常,并且已创建。最后一个不是,我得到如上所述的错误22。你知道吗

我添加了一个带有except子句的try块,它只是再次尝试打开文件。这在调试器中得到了一个有趣的结果。如果我在open之前在except子句中停止它并删除了以前创建的一个文件,那么它将继续创建下一个文件。所以一定有某种限制阻止我一次创建超过5个文件?你知道吗

import os
activedir=r'\\file-storage\storage\waystar\active'
IDs=['123457','123458','123459','143890','143891','143892']
for id in IDs:
    fn=activedir+r'\ID-'+id+'-Active.txt'    
    try:
        with open(fn,'w') as f:
            f.write("Hello World - what a bunch of crap.")
   except:
        with open(fn,'w') as f:
            f.write("Hello World - what a bunch of crap.")

Tags: 文件txtididsaswithstorageopen