This page includes some simple examples of how to use the pyxrootd File object to manipulate files on an xrootd server. More information can be found at

In order to use pyxrootd assuming it's installed you need to do the following


Reading a file

In a python session, one can script

from XRootD import client
from XRootD.client.flags import OpenFlags

with client.File() as f:
  output ='root://')
  data = f.readlines()
  print data
  print data[0]

to produce the following output.

['green\n', 'eggs\n', 'and\n', 'ham\n', '\n']

Writing a file

Here's an example of how to write a file

>>> from XRootD import client
>>> with client.File() as f:
...'root://',OpenFlags.NEW, AccessMode.OR)
...     f.write('green\neggs\nand\nham\n')
...     data = f.readlines()
...     print data
...     print data[0]
['green\n', 'eggs\n', 'and\n', 'ham\n']

Pay close attention to the attributes passed in as an argument to the file creation. OpenFlags.NEW ensures that a new file is opened only if it does not already exist. AccessMode.OR makes the file world readable. This is important if the file exists in an area which can be accessed via an alternative method to xrootd. In the example above, the file is written in the disk server that is also accessible from cxin01/02 machines as /data/antonio. This example writes a file named “cath” at /coepp/atlas/cloud/antonio/cath in the CoEPP xrootd namespace, which is equivalent to /data/antonio/cath in cxin01. However the file although written in user antonio's directory “antonio” will not be readable unless the AccessMode is set to world readable.

Information on the possible flag settings can be found here

tier3/faq/accessing_xrootd_storage_using_pyxrootd.txt · Last modified: 2014/03/24 18:20 by antonio
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki