Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- from io import StringIO
- import argparse
- import sys
- import unittest
- def quote_list(r, sep=None):
- # hope r is smallish
- return ", ".join("'{}'".format(t) for t in r.read().split(sep=sep))
- class TestLineSep(unittest.TestCase):
- expected = (
- "'1', '2', '3'"
- )
- def test_commas(self):
- self.assertEqual(self.expected, quote_list(StringIO("1,2,3"), ','))
- def test_newline(self):
- self.assertEqual(self.expected, quote_list(StringIO("1\n2\n3\n")))
- self.assertEqual(self.expected, quote_list(StringIO("1\n2\n3")))
- def test_whitespace(self):
- self.assertEqual(self.expected, quote_list(StringIO("1 2 3")))
- self.assertEqual(self.expected, quote_list(StringIO("1 2 3 ")))
- def main():
- parser = argparse.ArgumentParser()
- parser.add_argument('-f', '--field-separator', default=None, type=str)
- parser.add_argument('input', type=argparse.FileType('r'))
- args = parser.parse_args()
- print(quote_list(args.input, args.field_separator))
- if __name__ == '__main__':
- if sys.stdin.isatty() and len(sys.argv) > 1 and sys.argv[1] == 'test':
- sys.argv.pop(1)
- unittest.main()
- else:
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement