(PYVMS LOGO) Python on OpenVMS

(go to: table of contents, index, list of pyvms, prev: CRTL_OPEN)


CRTL_TO_VMS - call decc$to_vms() routine


Calls the C RTL decc$to_vms() function to translate a file specification from Unix styleinto OpenVMS format.

Format:

    file_list = pyvms.crtl_to_vms (unix_filespec, action_routine, \
                                     allow_wild, no_directory)
Returns:
file_list
List of files translated to OpenVMS format. If this is a non-wildcard operation, then the list contains only one filename.
Arguments:
unix_filespec
File specification in Unix style.
action_routine
A Python function that is called for each file processed. See the examples setion below. Return 1 to indicate continuation of wildcard processing; 0 to abort.

If the action routine is omitted, then an internal routine is used that appends the filename it it passed to 'file_list'.

allow_wild
If 0 (the default), then wildcards found in 'vms_filespec' are not expanded.
no_directory
3 values:
0    directory is not allowed
1    prevent expansion of string as directory name
2    forced to be directory name

Examples:

$ copy _nla0: SYS$SPECIFIC:[000000]pydemo.tmp

>>> import pyvms

>>> file_list = pyvms.crtl_to_vms ('/SYS$SYSTEM/', None, 0, 0)
>>> file_list
[('SYS$SYSTEM:', 1)]
>>>
>>> file_list = pyvms.crtl_to_vms ('/SYS$SYSTEM/', None, 0, 1)
>>> file_list
[('SYS$SYSTEM:', 1)]
>>>
>>> file_list = pyvms.crtl_to_vms ('/SYS$SYSTEM/', None, 0, 2)
>>> file_list
[('SYS$SYSTEM:', 1)]
>>>
>>> file_list = pyvms.crtl_to_vms ('/SYS$SYSTEM/DIRECTORY.ERR')
>>> file_list
[('SYS$SYSTEM:DIRECTORY.ERR', 1)]
>>>
>>> file_list = pyvms.crtl_to_vms ('/SYS$SYSTEM/DIRECTORY.EXE')
>>> file_list
[('SYS$SYSTEM:DIRECTORY.EXE', 1)]
>>>
>>> file_list = pyvms.crtl_to_vms ('/SYS$SYSTEM/NET*.DAT')
>>> file_list
[]
>>>
>>> file_list = pyvms.crtl_to_vms ('/SYS$SYSTEM/NET*.DAT', None, 1, 0)
>>> for filespec in file_list:
...     print filespec
...
('SYS$SYSROOT:[SYSEXE]NETCIRC.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETCONF.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETLINE.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETLOGING.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETNODE_LOCAL.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETNODE_REMOTE.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETOBJECT.DAT.1', 1)
>>>
>>> file_list = pyvms.crtl_to_vms ('/SYS$SYSTEM/NET*.DAT', None, 1, 1)
>>> for filespec in file_list:
...     print filespec
...
('SYS$SYSROOT:[SYSEXE]NETCIRC.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETCONF.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETLINE.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETLOGING.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETNODE_LOCAL.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETNODE_REMOTE.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETOBJECT.DAT.1', 1)
>>>
>>> file_list = pyvms.crtl_to_vms ('/SYS$SYSTEM/NET*.DAT', None, 1, 2)
>>> for filespec in file_list:
...     print filespec
...
('SYS$SYSROOT:[SYSEXE]NETCIRC.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETCONF.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETLINE.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETLOGING.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETNODE_LOCAL.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETNODE_REMOTE.DAT.1', 1)
('SYS$SYSROOT:[SYSEXE]NETOBJECT.DAT.1', 1)
>>>
>>> file_list = pyvms.crtl_to_vms ('/SYS$SPECIFIC/000000/*', None, 1, 0)
>>> for filespec in file_list:
...     print filespec
...
('SYS$SPECIFIC:[000000]FAL$SERVER.DIR.1', 1)
('SYS$SPECIFIC:[000000.MOM$SYSTEM]', 2)   <--- [1]
('SYS$SPECIFIC:[000000]PYDEMO.TMP.1', 1)
('SYS$SPECIFIC:[000000.SYS$I18N]', 2)
('SYS$SPECIFIC:[000000.SYS$LDR]', 2)
('SYS$SPECIFIC:[000000.SYS$STARTUP]', 2)
('SYS$SPECIFIC:[000000.SYSCBI]', 2)
('SYS$SPECIFIC:[000000.SYSCOMMON]', 2)
('SYS$SPECIFIC:[000000.SYSERR]', 2)
('SYS$SPECIFIC:[000000.SYSEXE]', 2)
('SYS$SPECIFIC:[000000.SYSHLP]', 2)
('SYS$SPECIFIC:[000000.SYSLIB]', 2)
('SYS$SPECIFIC:[000000.SYSMAINT]', 2)
('SYS$SPECIFIC:[000000.SYSMGR]', 2)
('SYS$SPECIFIC:[000000.SYSMSG]', 2)
('SYS$SPECIFIC:[000000.SYSTEST]', 2)
('SYS$SPECIFIC:[000000.SYSUPD]', 2)
('SYS$SPECIFIC:[000000.UCX$BIND]', 2)
>>>

[1] this is wrong. It has been (unofficially) reported to Compaq.

>>> file_list = pyvms.crtl_to_vms ('/SYS$SPECIFIC/000000/*', None, 1, 0)
>>> for filespec in file_list:
...     print filespec
...
('SYS$SPECIFIC:[000000.FAL$SERVER]', 2)
('SYS$SPECIFIC:[000000.MOM$SYSTEM]', 2)
('SYS$SPECIFIC:[000000]PYDEMO.TMP.1', 1)
('SYS$SPECIFIC:[000000.SYS$I18N]', 2)
('SYS$SPECIFIC:[000000.SYS$LDR]', 2)
('SYS$SPECIFIC:[000000.SYS$STARTUP]', 2)
('SYS$SPECIFIC:[000000.SYSCBI]', 2)
('SYS$SPECIFIC:[000000.SYSCOMMON]', 2)
('SYS$SPECIFIC:[000000.SYSERR]', 2)
('SYS$SPECIFIC:[000000.SYSEXE]', 2)
('SYS$SPECIFIC:[000000.SYSHLP]', 2)
('SYS$SPECIFIC:[000000.SYSLIB]', 2)
('SYS$SPECIFIC:[000000.SYSMAINT]', 2)
('SYS$SPECIFIC:[000000.SYSMGR]', 2)
('SYS$SPECIFIC:[000000.SYSMSG]', 2)
('SYS$SPECIFIC:[000000.SYSTEST]', 2)
('SYS$SPECIFIC:[000000.SYSUPD]', 2)
('SYS$SPECIFIC:[000000.UCX$BIND]', 2)
>>>
>>> file_list = pyvms.crtl_to_vms ('/SYS$SPECIFIC/000000/*', None, 1, 1)
>>> for filespec in file_list:
...     print filespec
...
('SYS$SPECIFIC:[000000]FAL$SERVER.DIR.1', 1)
('SYS$SPECIFIC:[000000.MOM$SYSTEM]', 2)
('SYS$SPECIFIC:[000000]PYDEMO.TMP.1', 1)
('SYS$SPECIFIC:[000000.SYS$I18N]', 2)
('SYS$SPECIFIC:[000000.SYS$LDR]', 2)
('SYS$SPECIFIC:[000000.SYS$STARTUP]', 2)
('SYS$SPECIFIC:[000000.SYSCBI]', 2)
('SYS$SPECIFIC:[000000.SYSCOMMON]', 2)
('SYS$SPECIFIC:[000000.SYSERR]', 2)
('SYS$SPECIFIC:[000000.SYSEXE]', 2)
('SYS$SPECIFIC:[000000.SYSHLP]', 2)
('SYS$SPECIFIC:[000000.SYSLIB]', 2)
('SYS$SPECIFIC:[000000.SYSMAINT]', 2)
('SYS$SPECIFIC:[000000.SYSMGR]', 2)
('SYS$SPECIFIC:[000000.SYSMSG]', 2)
('SYS$SPECIFIC:[000000.SYSTEST]', 2)
('SYS$SPECIFIC:[000000.SYSUPD]', 2)
('SYS$SPECIFIC:[000000.UCX$BIND]', 2)
>>>
>>> file_list = pyvms.crtl_to_vms ('/SYS$SPECIFIC/000000/*', None, 1, 2)
>>> for filespec in file_list:
...     print filespec
...
('SYS$SPECIFIC:[000000]FAL$SERVER.DIR.1', 1)
('SYS$SPECIFIC:[000000.MOM$SYSTEM]', 2)
('SYS$SPECIFIC:[000000]PYDEMO.TMP.1', 1)
('SYS$SPECIFIC:[000000.SYS$I18N]', 2)
('SYS$SPECIFIC:[000000.SYS$LDR]', 2)
('SYS$SPECIFIC:[000000.SYS$STARTUP]', 2)
('SYS$SPECIFIC:[000000.SYSCBI]', 2)
('SYS$SPECIFIC:[000000.SYSCOMMON]', 2)
('SYS$SPECIFIC:[000000.SYSERR]', 2)
('SYS$SPECIFIC:[000000.SYSEXE]', 2)
('SYS$SPECIFIC:[000000.SYSHLP]', 2)
('SYS$SPECIFIC:[000000.SYSLIB]', 2)
('SYS$SPECIFIC:[000000.SYSMAINT]', 2)
('SYS$SPECIFIC:[000000.SYSMGR]', 2)
('SYS$SPECIFIC:[000000.SYSMSG]', 2)
('SYS$SPECIFIC:[000000.SYSTEST]', 2)
('SYS$SPECIFIC:[000000.SYSUPD]', 2)
('SYS$SPECIFIC:[000000.UCX$BIND]', 2)
>>>

(go to: table of contents, index, list of pyvms, prev: CRTL_OPEN)

14-MAR-1999 ZE.