63 lines
1.4 KiB
Python
63 lines
1.4 KiB
Python
|
#!/usr/bin/env python3
|
||
|
# tiffcomment.py
|
||
|
|
||
|
"""Print or replace ImageDescription in first page of TIFF file.
|
||
|
|
||
|
Usage: tiffcomment [--set comment] file
|
||
|
|
||
|
"""
|
||
|
|
||
|
import os
|
||
|
import sys
|
||
|
|
||
|
try:
|
||
|
from .tifffile import tiffcomment
|
||
|
except ImportError:
|
||
|
try:
|
||
|
from tifffile.tifffile import tiffcomment
|
||
|
except ImportError:
|
||
|
from tifffile import tiffcomment
|
||
|
|
||
|
|
||
|
def main(argv=None):
|
||
|
"""Tiffcomment command line usage main function."""
|
||
|
if argv is None:
|
||
|
argv = sys.argv
|
||
|
|
||
|
if len(argv) > 2 and argv[1] in '--set':
|
||
|
comment = argv[2]
|
||
|
files = argv[3:]
|
||
|
else:
|
||
|
comment = None
|
||
|
files = argv[1:]
|
||
|
|
||
|
if len(files) == 0 or any(f.startswith('-') for f in files):
|
||
|
print()
|
||
|
print(__doc__.strip())
|
||
|
return
|
||
|
|
||
|
if comment is None:
|
||
|
pass
|
||
|
elif os.path.exists(comment):
|
||
|
with open(comment, 'rb') as fh:
|
||
|
comment = fh.read()
|
||
|
else:
|
||
|
try:
|
||
|
comment = comment.encode('ascii')
|
||
|
except UnicodeEncodeError as exc:
|
||
|
print(f'{exc}')
|
||
|
comment = comment.encode()
|
||
|
|
||
|
for file in files:
|
||
|
try:
|
||
|
result = tiffcomment(file, comment)
|
||
|
except Exception as exc:
|
||
|
print(f'{file}: {exc}')
|
||
|
else:
|
||
|
if result:
|
||
|
print(result)
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
sys.exit(main())
|