/ examples / sd_read_simpletest.py
sd_read_simpletest.py
 1  import os
 2  import busio
 3  import digitalio
 4  import board
 5  import storage
 6  import adafruit_sdcard
 7  
 8  # The SD_CS pin is the chip select line.
 9  #
10  #     The Adalogger Featherwing with ESP8266 Feather, the SD CS pin is on board.D15
11  #     The Adalogger Featherwing with Atmel M0 Feather, it's on board.D10
12  #     The Adafruit Feather M0 Adalogger use board.SD_CS
13  #     For the breakout boards use any pin that is not taken by SPI
14  
15  SD_CS = board.SD_CS  # setup for M0 Adalogger; change as needed
16  
17  # Connect to the card and mount the filesystem.
18  spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
19  cs = digitalio.DigitalInOut(SD_CS)
20  sdcard = adafruit_sdcard.SDCard(spi, cs)
21  vfs = storage.VfsFat(sdcard)
22  storage.mount(vfs, "/sd")
23  
24  # Use the filesystem as normal! Our files are under /sd
25  
26  # This helper function will print the contents of the SD
27  def print_directory(path, tabs=0):
28      for file in os.listdir(path):
29          stats = os.stat(path + "/" + file)
30          filesize = stats[6]
31          isdir = stats[0] & 0x4000
32  
33          if filesize < 1000:
34              sizestr = str(filesize) + " bytes"
35          elif filesize < 1000000:
36              sizestr = "%0.1f KB" % (filesize / 1000)
37          else:
38              sizestr = "%0.1f MB" % (filesize / 1000000)
39  
40          prettyprintname = ""
41          for _ in range(tabs):
42              prettyprintname += "   "
43          prettyprintname += file
44          if isdir:
45              prettyprintname += "/"
46          print("{0:<40} Size: {1:>10}".format(prettyprintname, sizestr))
47  
48          # recursively print directory contents
49          if isdir:
50              print_directory(path + "/" + file, tabs + 1)
51  
52  
53  print("Files on filesystem:")
54  print("====================")
55  print_directory("/sd")