Jython Shutil(Windows、Linux、J/Python之间的不同行为)!

Jython Shutil(Windows、Linux、J/Python之间的不同行为)!,python,linux,windows,jython,Python,Linux,Windows,Jython,我使用Jython,通过Topspin(运行在Java上的NMR软件)运行以下代码: home = "C:/Bruker/TopSpin3.2" ep_zges_outdir = os.path.abspath(home + "/data/Testshutil/nmr/zges/") data = ["EP_Saliva_140131_raw", "1", "1", "C:/Bruker/TopSpin3.2/data/Testshutil/nmr"] ep_zges_list = [["EP_

我使用Jython,通过Topspin(运行在Java上的NMR软件)运行以下代码:

home = "C:/Bruker/TopSpin3.2"
ep_zges_outdir = os.path.abspath(home + "/data/Testshutil/nmr/zges/")
data = ["EP_Saliva_140131_raw", "1", "1", "C:/Bruker/TopSpin3.2/data/Testshutil/nmr"]
ep_zges_list = [["EP_Saliva_140131_raw",25,334],...]

for sample in ep_zges_list:
    if data[0] == sample[0] and data[1] == str(sample[1]):
        src = os.path.abspath(data[3] + "/" + data[0] + "/" + data[1])
        dst = os.path.abspath(ep_zges_outdir + "/" + str(sample[2]))
        shutil.copytree(src, dst)
已完成正确的导入,并且在正常工作时,不需要os.path.abspath

这在Windows/Linux python和CentOS中运行Jython的相同软件中都能完美地工作。它不在Windows 7中的软件/Jython中运行,并产生以下错误:

Traceback (most recent call last):
  File "C:/Bruker/TopSpin3.2/exp/stan/nmr/py/user/JF_test_code_8.py", line 41, in <module>
    shutil.copytree(os.path.abspath(data[3] + "/" + data[0] + "/" + data[1]), os.path.abspath(ep_zges_outdir + "/" + str(sample[2])))
  File "C:\Bruker\TopSpin3.2\jython\Lib\shutil.py", line 145, in copytree
    raise Error, errors
shutil.Error: [u'C:\\Bruker\\TopSpin3.2\\data\\Testshutil\\nmr\\EP_Saliva_140310_raw\\1\\pdata\\1', 
u'C:\\Bruker\\TopSpin3.2\\data\\Testshutil\\nmr\\zges\\334\\pdata\\1', 
"[Errno 5] Input/output error: u'C:\\\\Bruker\\\\TopSpin3.2\\\\data\\\\Testshutil\\\\nmr\\\\zges\\\\334\\\\pdata\\\\1'", 
u'C:\\Bruker\\TopSpin3.2\\data\\Testshutil\\nmr\\EP_Saliva_140310_raw\\1\\pdata', 
u'C:\\Bruker\\TopSpin3.2\\data\\Testshutil\\nmr\\zges\\334\\pdata', 
"[Errno 5] Input/output error: u'C:\\\\Bruker\\\\TopSpin3.2\\\\data\\\\Testshutil\\\\nmr\\\\zges\\\\334\\\\pdata'", 
u'C:\\Bruker\\TopSpin3.2\\data\\Testshutil\\nmr\\EP_Saliva_140310_raw\\1', 
u'C:\\Bruker\\TopSpin3.2\\data\\Testshutil\\nmr\\zges\\334', 
"[Errno 5] Input/output error: u'C:\\\\Bruker\\\\TopSpin3.2\\\\data\\\\Testshutil\\\\nmr\\\\zges\\\\334'"]
回溯(最近一次呼叫最后一次):
文件“C:/Bruker/topsin3.2/exp/stan/nmr/py/user/JF_test_code_8.py”,第41行,在
copytree(os.path.abspath(数据[3]+“/”+数据[0]+“/”+数据[1]),os.path.abspath(ep_zges_outdir+“/”+str(示例[2]))
文件“C:\Bruker\TopSpin3.2\jython\Lib\shutil.py”,第145行,在copytree中
提出错误
错误:[u'C:\\Bruker\\TopSpin3.2\\data\\Testshutil\\nmr\\EP\u唾液\u 140310\u原始\\1\\pdata\\1',
u'C:\\Bruker\\topsin3.2\\data\\Testshutil\\nmr\\zges\\334\\pdata\\1',
“[Errno 5]输入/输出错误:u'C:\\\\Bruker\\\\TopSpin3.2\\\\data\\\\Testshutil\\\\nmr\\\\zges\\\\334\\\\pdata\\\\1'”,
u'C:\\Bruker\\topsin3.2\\data\\Testshutil\\nmr\\EP\u唾液\u 140310\u原始\\1\\pdata',
u'C:\\Bruker\\topsin3.2\\data\\Testshutil\\nmr\\zges\\334\\pdata',
“[Errno 5]输入/输出错误:u'C:\\\\Bruker\\\\TopSpin3.2\\\\data\\\\Testshutil\\\\nmr\\\\\zges\\\\334\\\\\pdata”,
u'C:\\Bruker\\TopSpin3.2\\data\\Testshutil\\nmr\\EP\u唾液\u 140310\u原始\\1',
u'C:\\Bruker\\TopSpin3.2\\data\\Testshutil\\nmr\\zges\\334',
“[Errno 5]输入/输出错误:u'C:\\\\Bruker\\\\TopSpin3.2\\\\data\\\\Testshutil\\\\nmr\\\\zges\\\\334'”
软件版本: Windows7SP1 64位。 Python 2.7 32位。 Jython2.5.3在Topspin 3.2和Java1.7.0_51上运行

CentOS 6.5 32位
Jython 2.5.3在Topspin 3.2和Java 1.7.0_45上运行

我认为这是一个Jython bug(一个非常恼人的bug)。看


谢谢!我执行了此处描述的copystat函数: