我使用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