tuomasvaltanen

Untitled

Nov 29th, 2022 (edited)
892
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.61 KB | None | 0 0
  1. # luento 29.11.2022, tiedostonkäsittely Pythonissa
  2. print("Tervetuloa!")
  3.  
  4. # UUSI TEKSTITIEODSTO - weekdays.txt
  5.  
  6. Maanantai
  7. Tiistai
  8. Keskiviikko
  9. Torstai
  10. Perjantai
  11. Lauantai
  12. Sunnuntai
  13.  
  14. # UUSI TIEDOSTO
  15.  
  16. # aukaistaan yhteys tiedostoon
  17. file_handle = open("weekdays.txt", "r")
  18.  
  19. # luetaan koko tiedoston sisältö muuttujaan
  20. content = file_handle.read()
  21.  
  22. # tulostetaan sisältö
  23. print(content)
  24.  
  25. # muistetaan myös sulkea yhteys tiedostoon!
  26. file_handle.close()
  27.  
  28. # UUSI TIEDOSTO
  29.  
  30. # aukaistaan yhteys tiedostoon
  31. file_handle = open("weekdays.txt", "r")
  32.  
  33. # laskurimuuttuja while-silmukkaa varten, jotta
  34. # saadaan rivinumerot mukaan
  35. counter = 1
  36.  
  37. # haetaan silmukassa niin kauan rivejä kuin tiedostossa niitä on
  38. while True:
  39.     line = file_handle.readline()
  40.     #print(line)
  41.    
  42.     # tulostetaan rivinumero + tiedoston tämänhetkinen rivi
  43.     print(f"{counter}. {line}")
  44.     counter = counter + 1
  45.  
  46.     # jos rivit loppuivat, break
  47.     if not line:
  48.         break
  49.  
  50. # muistetaan myös sulkea yhteys tiedostoon!
  51. file_handle.close()
  52.  
  53. # UUSI TIEDOSTO
  54.  
  55. # aukaistaan yhteys tiedostoon
  56. file_handle = open("weekdays.txt", "r")
  57.  
  58. # luetaan tiedoston sisältö ja splitataan rivinvaihdolla listaksi
  59. content = file_handle.read()
  60. lines = content.split("\n")
  61.  
  62. # koska lines on ihan tavallinen lista:
  63. for line in lines:
  64.     print(line)
  65.  
  66. print()
  67.  
  68. # myös numeroitu lista on helpompi tehdä!
  69. amount = len(lines)
  70.  
  71. for index in range(amount):
  72.     line = lines[index]
  73.     print(f"{index + 1}. {line}")
  74.  
  75. # muistetaan myös sulkea yhteys tiedostoon!
  76. file_handle.close()
  77.  
  78. # UUSI TIEDOSTO
  79.  
  80. # avataan tiedosto kirjoittamista varten
  81. # asetetaan encoding=utf-8, jolloin ääkköset toimii oikein
  82. file_handle = open("muistio.txt", "w", encoding="utf-8")
  83.  
  84. # pyydetään käyttäjältä tekstiä ja tallennetaan tiedostoon
  85. text = input("Anna jotain tekstiä:\n")
  86.  
  87. file_handle.write(text)
  88.  
  89. # muistetaan myös sulkea yhteys tiedostoon!
  90. file_handle.close()
  91.  
  92. # UUSI TIEDOSTO
  93.  
  94. # avataan tiedosto kirjoittamista varten (a = append)
  95. # asetetaan encoding=utf-8, jolloin ääkköset toimii oikein
  96. file_handle = open("muistio.txt", "a", encoding="utf-8")
  97.  
  98. # pyydetään käyttäjältä tekstiä ja tallennetaan tiedostoon
  99. text = input("Anna jotain tekstiä:\n")
  100.  
  101. # lisätään rivinvaihto jotta kaikki uusi teksti
  102. # tulee edellisen alle!
  103. file_handle.write(text + "\n\n")
  104.  
  105. # muistetaan myös sulkea yhteys tiedostoon!
  106. file_handle.close()
  107.  
  108. # UUSI JSON-TIEDOSTO: app_data.json
  109.  
  110. {
  111.    "name":"Rovaniemi",
  112.    "population":62933,
  113.    "county":"Lappi"
  114. }
  115.  
  116. # UUSI TIEDOSTO
  117.  
  118. import json
  119. #import var_dump as vd
  120.  
  121. file_handle = open("app_data.json", "r")
  122. content = file_handle.read()
  123. file_handle.close()
  124.  
  125. # ennen kuin JSON dataa voidaan käyttää
  126. # => json.loads()
  127. city = json.loads(content)
  128. print(city['name'])
  129. print(city['population'])
  130.  
  131. # muista: JSON on lopulta vain tekstiä, vaikka
  132. # se näyttää Pythonin dictionarylta tai listalta!
  133. # vd.var_dump(content)
  134. # print()
  135. # vd.var_dump(city)
  136.  
  137. # UUSI TIEDOSTO
  138.  
  139. import json
  140.  
  141. # Python dictionary, puhelindataa
  142. phone = {
  143.     "name": "Nokia 3310",
  144.     "release_year": 2000,
  145.     "battery": "1000mAh",
  146.     "camera": False,
  147.     "weight": 133
  148. }
  149.  
  150. # Python data => JSON-formaattiin (eli tekstiksi)
  151. content = json.dumps(phone)
  152.  
  153. # tallennetaan JSON (eli teksti) tiedostoon!
  154. file_handle = open("phone.json", "w")
  155. file_handle.write(content)
  156. file_handle.close()
  157.  
  158. print("Kiitos puhelimen tallentamisesta!")
  159.  
  160. # UUSI JSON-TIEDOSTO - cities.json
  161.  
  162. [
  163.    {
  164.       "name":"Rovaniemi",
  165.       "population":62933,
  166.       "county":"Lappi"
  167.    },
  168.    {
  169.       "name":"Oulu",
  170.       "population":199526,
  171.       "county":"Pohjois-Pohjanmaa"
  172.    },
  173.    {
  174.       "name":"Helsinki",
  175.       "population":631695,
  176.       "county":"Uusimaa"
  177.    }
  178. ]
  179.  
  180. # UUSI TIEDOSTO
  181.  
  182. import json
  183.  
  184. # luetaan cities.jsonin sisältö muuttujaan, muutetaan Python-dataksi
  185. file_handle = open("cities.json", "r")
  186. content = file_handle.read()
  187. file_handle.close()
  188.  
  189. # cities on lista joka koostuu dictionaryistä
  190. cities = json.loads(content)
  191.  
  192. # tulostetaan jokaisen kaupungin nimi + maakunta
  193. for city in cities:
  194.     print(city['name'])
  195.     print(city['county'])
  196.     print()
  197.  
  198. # UUSI TIEDOSTO
  199.  
  200. import json
  201.  
  202. # luetaan cities.jsonin sisältö muuttujaan, muutetaan Python-dataksi
  203. file_handle = open("cities.json", "r")
  204. content = file_handle.read()
  205. file_handle.close()
  206.  
  207. # cities on lista joka koostuu dictionaryistä
  208. cities = json.loads(content)
  209.  
  210. # tulostetaan jokaisen kaupungin nimi + maakunta
  211. for city in cities:
  212.     print(city['name'])
  213.     print(city['county'])
  214.     print(city['population'])
  215.     print()
  216.  
  217. # VAIHE 2: kysytään käyttäjältä uuden kaupungin tiedot
  218. new_city_name = input("Anna uuden kaupungin nimi:\n")
  219. new_city_county = input("Anna uuden kaupungin maakunta:\n")
  220. new_city_population = input("Anna uuden kaupungin asukasluku:\n")
  221. new_city_population = int(new_city_population)
  222.  
  223. new_city = {
  224.     "name": new_city_name,
  225.     "population": new_city_population,
  226.     "county": new_city_county
  227. }
  228.  
  229. # koska cities on lista, voidaan uusi kaupunki lisätä
  230. # jonon perälle:
  231. cities.append(new_city)
  232.  
  233. # kaikki muutokset on nyt tallennettu cities-listaan
  234. # joten voimme tallentaa tämän version
  235. # vanhan tiedoston päälle
  236.  
  237. # laita toiseksi parametriksi indent=4, jos haluat että
  238. # JSON tallentuu siistimmässä muodossa tiedostoon!
  239. json_data = json.dumps(cities)
  240.  
  241. # avataan nyt kirjoitusmoodissa tiedosto
  242. # jotta voimme korvata vanhan datan uudella
  243. file_handle = open("cities.json", "w")
  244. file_handle.write(json_data)
  245. file_handle.close()
  246.  
  247. print("Uusi kaupunki tallennettu onnistuneesti.")
Advertisement
Add Comment
Please, Sign In to add comment