loadcode.py 932 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # -*- encoding: utf-8 -*-
  2. import csv
  3. import os
  4. _workdir = os.path.dirname(os.path.abspath(__file__))
  5. _filename = os.path.join(_workdir, 'code.csv')
  6. def _download_data():
  7. """
  8. tushare doesnt support py2
  9. using py3(/root/.pyvenv/wzb_ts/bin/python3) to exec it
  10. """
  11. import tushare as ts
  12. ts.set_token('99800760dfbbdf7d0b4124f6d4be39ebac6a093628f0bd19a7432486')
  13. pro = ts.pro_api()
  14. df = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
  15. df.to_csv(_filename)
  16. def get_stock_list():
  17. """
  18. no duplicate names
  19. """
  20. names = set()
  21. ret = []
  22. with open(_filename, 'r') as f:
  23. rows = csv.reader(f)
  24. for i in rows:
  25. code, name = i[2: 4]
  26. if name not in names:
  27. ret.append((code, name))
  28. names.add(name)
  29. return ret
  30. if __name__ == '__main__':
  31. _download_data()