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

时间:2014-03-20 08:33:50

标签: 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_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中的Software / 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'"]

软件版本: Windows 7 SP1 64位。 Python 2.7 32位。 Jython 2.5.3在Topspin 3.2和Java 1.7.0_51上运行。

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

1 个答案:

答案 0 :(得分:1)

我认为这是一个Jython错误(非常讨厌)。参见

http://bugs.jython.org/issue1872