{"id":7840,"date":"2024-02-26T13:48:10","date_gmt":"2024-02-26T12:48:10","guid":{"rendered":"https:\/\/softinery.com\/pl\/?page_id=7840"},"modified":"2024-08-06T13:26:54","modified_gmt":"2024-08-06T11:26:54","slug":"python-operacje-na-plikach","status":"publish","type":"page","link":"https:\/\/softinery.com\/pl\/blog\/python-operacje-na-plikach\/","title":{"rendered":"Python: operacje na plikach. Odczyt i zapis do pliku tekstowego"},"content":{"rendered":"<style>.kb-table-of-content-nav.kb-table-of-content-id7840_62fb40-7b .kb-table-of-content-wrap{padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);}.kb-table-of-content-nav.kb-table-of-content-id7840_62fb40-7b .kb-table-of-contents-title-wrap{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id7840_62fb40-7b .kb-table-of-contents-title{font-weight:regular;font-style:normal;}.kb-table-of-content-nav.kb-table-of-content-id7840_62fb40-7b .kb-table-of-content-wrap .kb-table-of-content-list{font-weight:regular;font-style:normal;margin-top:var(--global-kb-spacing-sm, 1.5rem);margin-right:0px;margin-bottom:0px;margin-left:0px;}<\/style>\n\n\n<p>Operacje na plikach s\u0105 wykorzystywane w wielu zagadnieniach programistycznych, <a href=\"https:\/\/softinery.com\/pl\/2023\/04\/28\/python-dla-inzynierow\/\">in\u017cynierskich<\/a>, <a href=\"https:\/\/softinery.com\/pl\/katalog-szkolen\/wprowadzenie-do-obliczen-naukowych\/\">naukowych<\/a> i <a href=\"https:\/\/softinery.com\/pl\/katalog-szkolen\/python-data-science-kurs\/\">analizie danych<\/a>. Jednym z takich zagadnie\u0144 mo\u017ce by\u0107 masowa obr\u00f3bka plik\u00f3w graficznych (np. zmiana rozmiaru, kolor\u00f3w), filtrowanie plik\u00f3w o wybranych rozszerzeniach i wiele innych. J\u0119zyk Python dysponuje sporym zbiorem funkcji wbudowanych do operacji na plikach. Funkcjonalno\u015b\u0107 j\u0119zyka w tym obszarze mo\u017cemy poszerzy\u0107 wykorzystuj\u0105c bardziej <a href=\"https:\/\/softinery.com\/pl\/2023\/04\/28\/python-dla-inzynierow\/\">specjalistyczne biblioteki<\/a>. Poni\u017cej om\u00f3wi\u0119 podstawy obs\u0142ugi plik\u00f3w, czyli takie zadania jak odczyt, zapis czy kopiowanie.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_c59825-a3, .wp-block-kadence-advancedheading.kt-adv-heading7840_c59825-a3[data-kb-block=\"kb-adv-heading7840_c59825-a3\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_c59825-a3 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_c59825-a3[data-kb-block=\"kb-adv-heading7840_c59825-a3\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_c59825-a3 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_c59825-a3[data-kb-block=\"kb-adv-heading7840_c59825-a3\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading7840_c59825-a3 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_c59825-a3\">Otwieranie pliku<\/h2>\n\n\n\n<p>Przed wykonaniem jakichkolwiek dzia\u0142a\u0144 na pliku, musimy go najpierw otworzy\u0107. Zrobimy to przy u\u017cyciu funkcji <code>open()<\/code>. Pos\u0142u\u017cymy si\u0119 przyk\u0142adowym plikiem tekstowym plik1.txt o tre\u015bci:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>To jest przykladowy plik tekstowy.\nDo zobaczenia!<\/code><\/pre>\n\n\n\n<p>Plik otwieramy przy u\u017cyciu instrukcji:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"plik1 = open(&quot;plik1.txt&quot;)\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #24292E\">plik1 <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&quot;plik1.txt&quot;<\/span><span style=\"color: #24292E\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Pliki mo\u017cemy otwiera\u0107 w r\u00f3\u017cnych trybach. Domy\u015blnie plik jest otwierany w trybie tylko do odczytu. Do wskazania, kt\u00f3ry tryb chcemy wykorzysta\u0107, u\u017cywamy dodatkowego argumentu, jak w poni\u017cszych przyk\u0142adach:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Tryb odczytu (<code>'r'<\/code>): Pozwala na odczytanie zawarto\u015bci istniej\u0105cego pliku. Je\u015bli plik nie istnieje, wyst\u0105pi b\u0142\u0105d.<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"file = open('plik1.txt', 'r')\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E36209\">file<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&#39;plik1.txt&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;r&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>Tryb zapisu (<code>'w'<\/code>): Tworzy nowy plik do zapisu danych. Je\u015bli plik ju\u017c istnieje, nadpisuje go now\u0105 zawarto\u015bci\u0105.<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"file = open('plik1.txt', 'w')\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E36209\">file<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&#39;plik1.txt&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;w&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>Tryb dopisywania (<code>'a'<\/code>): Otwiera plik do dopisywania danych na ko\u0144cu istniej\u0105cej zawarto\u015bci. Je\u015bli plik nie istnieje, tworzy nowy.<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"file = open('plik1.txt', 'a')\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E36209\">file<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&#39;plik1.txt&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;a&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_bd5896-ae, .wp-block-kadence-advancedheading.kt-adv-heading7840_bd5896-ae[data-kb-block=\"kb-adv-heading7840_bd5896-ae\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_bd5896-ae mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_bd5896-ae[data-kb-block=\"kb-adv-heading7840_bd5896-ae\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_bd5896-ae img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_bd5896-ae[data-kb-block=\"kb-adv-heading7840_bd5896-ae\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading7840_bd5896-ae wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_bd5896-ae\">Wczytywanie danych z pliku tekstowego do Pythona<\/h2>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_ec9136-61, .wp-block-kadence-advancedheading.kt-adv-heading7840_ec9136-61[data-kb-block=\"kb-adv-heading7840_ec9136-61\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_ec9136-61 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_ec9136-61[data-kb-block=\"kb-adv-heading7840_ec9136-61\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_ec9136-61 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_ec9136-61[data-kb-block=\"kb-adv-heading7840_ec9136-61\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading7840_ec9136-61 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_ec9136-61\">Wczytywanie ca\u0142ego pliku<\/h3>\n\n\n\n<p>Po otwarciu pliku mo\u017cemy wczyta\u0107 jego tre\u015b\u0107 do jednej zmiennej za pomoc\u0105 funkcji <code>read()<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# otw\u00f3rz plik\nplik = open(&quot;plik1.txt&quot;)\n\n# wczytaj plik\nread_content = plik.read()\n\nprint(read_content)\n\nplik.close()\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\"># otw\u00f3rz plik<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&quot;plik1.txt&quot;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># wczytaj plik<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">read_content <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> plik.read()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #005CC5\">print<\/span><span style=\"color: #24292E\">(read_content)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik.close()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Wynik:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>To jest przykladowy plik tekstowy.\nDo zobaczenia!<\/code><\/pre>\n\n\n\n<p>Po otwarciu pliku za pomoc\u0105 funkcji <code>open()<\/code> zaleca si\u0119 jego zamkni\u0119cie za pomoc\u0105 funkcji <code>close()<\/code>, aby zwolni\u0107 zasoby systemowe i zapobiec problemom zwi\u0105zanych z dost\u0119pem do otwartych plik\u00f3w. W Pythonie istnieje alternatywna sk\u0142adnia z u\u017cyciem instrukcji <code>with<\/code>, kt\u00f3ra automatycznie zarz\u0105dza zamkni\u0119ciem pliku po opuszczeniu bloku, o czym przekonamy si\u0119 za chwil\u0119.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_a79bd5-98, .wp-block-kadence-advancedheading.kt-adv-heading7840_a79bd5-98[data-kb-block=\"kb-adv-heading7840_a79bd5-98\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_a79bd5-98 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_a79bd5-98[data-kb-block=\"kb-adv-heading7840_a79bd5-98\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_a79bd5-98 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_a79bd5-98[data-kb-block=\"kb-adv-heading7840_a79bd5-98\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading7840_a79bd5-98 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_a79bd5-98\">Wczytywanie danych linia po linii<\/h3>\n\n\n\n<p>Prostym sposobem wczytywania danych z pliku tekstowego jest odczytanie go linia po linii i przetworzenie ka\u017cdej linii oddzielnie. Mo\u017cemy to zrobi\u0107 za pomoc\u0105 wbudowanej funkcji <code>readline()<\/code> do odczytania kolejnych linii. Przyk\u0142adowy kod wygl\u0105da nast\u0119puj\u0105co:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# Otwieramy plik tekstowy do odczytu\nwith open('plik1.txt', 'r') as file:\n    # Odczytujemy kolejne linie z pliku\n    for line in file:\n        print(line.strip())  # usuwamy bia\u0142e znaki z ko\u0144ca i pocz\u0105tku linii\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\"># Otwieramy plik tekstowy do odczytu<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">with<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&#39;plik1.txt&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;r&#39;<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">as<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #E36209\">file<\/span><span style=\"color: #24292E\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #6A737D\"># Odczytujemy kolejne linie z pliku<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">for<\/span><span style=\"color: #24292E\"> line <\/span><span style=\"color: #D73A49\">in<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #E36209\">file<\/span><span style=\"color: #24292E\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #005CC5\">print<\/span><span style=\"color: #24292E\">(line.strip())  <\/span><span style=\"color: #6A737D\"># usuwamy bia\u0142e znaki z ko\u0144ca i pocz\u0105tku linii<\/span><\/span><\/code><\/pre><\/div>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_1e3cff-79, .wp-block-kadence-advancedheading.kt-adv-heading7840_1e3cff-79[data-kb-block=\"kb-adv-heading7840_1e3cff-79\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_1e3cff-79 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_1e3cff-79[data-kb-block=\"kb-adv-heading7840_1e3cff-79\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_1e3cff-79 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_1e3cff-79[data-kb-block=\"kb-adv-heading7840_1e3cff-79\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading7840_1e3cff-79 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_1e3cff-79\">Wczytywanie danych jako listy<\/h3>\n\n\n\n<p>Je\u015bli chcemy wczyta\u0107 ca\u0142\u0105 zawarto\u015b\u0107 pliku tekstowego do pami\u0119ci jako list\u0119, mo\u017cemy u\u017cy\u0107 funkcji <code>readlines()<\/code>. Ta metoda odczytuje ca\u0142y plik i zwraca list\u0119, gdzie ka\u017cdy <a href=\"https:\/\/softinery.com\/pl\/darmowy-kurs-python-online\/python-listy\/\">element listy<\/a> odpowiada jednej linii z pliku.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# Otwieramy plik tekstowy do odczytu\nwith open('plik1.txt', 'r') as file:\n    # Wczytujemy ca\u0142\u0105 zawarto\u015b\u0107 pliku do listy\n    lines = file.readlines()\n\n# Wy\u015bwietlamy wczytane linie\nfor line in lines:\n    print(line.strip())  # usuwamy bia\u0142e znaki z ko\u0144ca i pocz\u0105tku linii\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\"># Otwieramy plik tekstowy do odczytu<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">with<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&#39;plik1.txt&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;r&#39;<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">as<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #E36209\">file<\/span><span style=\"color: #24292E\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #6A737D\"># Wczytujemy ca\u0142\u0105 zawarto\u015b\u0107 pliku do listy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    lines <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #E36209\">file<\/span><span style=\"color: #24292E\">.readlines()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># Wy\u015bwietlamy wczytane linie<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">for<\/span><span style=\"color: #24292E\"> line <\/span><span style=\"color: #D73A49\">in<\/span><span style=\"color: #24292E\"> lines:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #005CC5\">print<\/span><span style=\"color: #24292E\">(line.strip())  <\/span><span style=\"color: #6A737D\"># usuwamy bia\u0142e znaki z ko\u0144ca i pocz\u0105tku linii<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_abe300-ec, .wp-block-kadence-advancedheading.kt-adv-heading7840_abe300-ec[data-kb-block=\"kb-adv-heading7840_abe300-ec\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_abe300-ec mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_abe300-ec[data-kb-block=\"kb-adv-heading7840_abe300-ec\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_abe300-ec img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_abe300-ec[data-kb-block=\"kb-adv-heading7840_abe300-ec\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading7840_abe300-ec wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_abe300-ec\">Zapis do pliku<\/h2>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_a91af3-ec, .wp-block-kadence-advancedheading.kt-adv-heading7840_a91af3-ec[data-kb-block=\"kb-adv-heading7840_a91af3-ec\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_a91af3-ec mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_a91af3-ec[data-kb-block=\"kb-adv-heading7840_a91af3-ec\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_a91af3-ec img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_a91af3-ec[data-kb-block=\"kb-adv-heading7840_a91af3-ec\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading7840_a91af3-ec wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_a91af3-ec\">Zapis przy u\u017cyciu funkcji write<\/h3>\n\n\n\n<p>Aby zapisa\u0107 tre\u015b\u0107 do pliku musimy otworzy\u0107 z parametrem <code>w<\/code>. Do zapisu wykorzystujemy funkcj\u0119 <code>write()<\/code>.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# otw\u00f3rz plik2.txt w trybie do zapisu\n\nplik2 = open('plik2.txt', 'w')\n\n# zapisz tre\u015b\u0107 do plik2.txt\nplik2.write('Zapisana tresc do pliku.\\n')\nplik2.write('Koniec pliku.\\n')\nplik2.close()\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\"># otw\u00f3rz plik2.txt w trybie do zapisu<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik2 <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&#39;plik2.txt&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;w&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># zapisz tre\u015b\u0107 do plik2.txt<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik2.write(<\/span><span style=\"color: #032F62\">&#39;Zapisana tresc do pliku.<\/span><span style=\"color: #005CC5\">\\n<\/span><span style=\"color: #032F62\">&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik2.write(<\/span><span style=\"color: #032F62\">&#39;Koniec pliku.<\/span><span style=\"color: #005CC5\">\\n<\/span><span style=\"color: #032F62\">&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik2.close()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Zwr\u00f3\u0107my uwag\u0119, \u017ce ka\u017cda linia zapisywana do pliku zako\u0144czona jest znakiem ko\u0144ca linii, czyli <code>\\n<\/code>. Gdyb\u015bmy pomin\u0119li ten znak, to funkcja <code>write()<\/code> dopisa\u0142aby ci\u0105g znak\u00f3w w tej samej linii, a plik po modyfikacji wygl\u0105da\u0142by tak:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Zapisana tresc do pliku.Koniec pliku.<\/code><\/pre>\n\n\n\n<p>Kolejn\u0105 kwesti\u0105 jest konieczno\u015b\u0107 zamkni\u0119cia pliku przy u\u017cyciu funkcji <code>close()<\/code>, co jest konieczne, aby program wprowadzi\u0142 w nim zmiany. Je\u017celi tego nie zrobimy, to mo\u017cemy mie\u0107 r\u00f3wnie\u017c problemy z dost\u0119pem do pliku przez inne programy.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_010118-54, .wp-block-kadence-advancedheading.kt-adv-heading7840_010118-54[data-kb-block=\"kb-adv-heading7840_010118-54\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_010118-54 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_010118-54[data-kb-block=\"kb-adv-heading7840_010118-54\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_010118-54 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_010118-54[data-kb-block=\"kb-adv-heading7840_010118-54\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading7840_010118-54 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_010118-54\">Zapis do pliku przy u\u017cyciu with open<\/h3>\n\n\n\n<p>Mo\u017cemy r\u00f3wnie\u017c skorzysta\u0107 z wcze\u015bniej wspomnianej instrukcji with.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# Dane do dopisania\nnowe_dane = &quot;Nowe dane, ktore zostana dopisane do pliku.&quot;\n\n# Otwarcie pliku w trybie dopisywania ('a' - append)\nwith open('plik_do_zapisu.txt', 'w') as file:\n    # Dopisanie nowych danych do pliku\n    file.write(&quot;\\n&quot;)  # Dodanie nowej linii przed nowymi danymi\n    file.write(nowe_dane)\n\nprint(&quot;Nowe dane zostaly dopisane do pliku.&quot;)\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\"># Dane do dopisania<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">nowe_dane <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;Nowe dane, ktore zostana dopisane do pliku.&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># Otwarcie pliku w trybie dopisywania (&#39;a&#39; - append)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">with<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&#39;plik_do_zapisu.txt&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;w&#39;<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">as<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #E36209\">file<\/span><span style=\"color: #24292E\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #6A737D\"># Dopisanie nowych danych do pliku<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #E36209\">file<\/span><span style=\"color: #24292E\">.write(<\/span><span style=\"color: #032F62\">&quot;<\/span><span style=\"color: #005CC5\">\\n<\/span><span style=\"color: #032F62\">&quot;<\/span><span style=\"color: #24292E\">)  <\/span><span style=\"color: #6A737D\"># Dodanie nowej linii przed nowymi danymi<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #E36209\">file<\/span><span style=\"color: #24292E\">.write(nowe_dane)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #005CC5\">print<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&quot;Nowe dane zostaly dopisane do pliku.&quot;<\/span><span style=\"color: #24292E\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_42f163-eb, .wp-block-kadence-advancedheading.kt-adv-heading7840_42f163-eb[data-kb-block=\"kb-adv-heading7840_42f163-eb\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_42f163-eb mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_42f163-eb[data-kb-block=\"kb-adv-heading7840_42f163-eb\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_42f163-eb img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_42f163-eb[data-kb-block=\"kb-adv-heading7840_42f163-eb\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading7840_42f163-eb wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_42f163-eb\">Korzystanie z trybu dopisywania<\/h3>\n\n\n\n<p>Tryb ten s\u0142u\u017cy do do\u0142\u0105czania tre\u015bci do istniej\u0105cego ju\u017c pliku. W tym \u0107wiczeniu wykorzystamy wcze\u015bniej stworzony plik plik1.txt, do kt\u00f3rego dodamy now\u0105 linijk\u0119 tekstu.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# Przyk\u0142ad zastosowania trybu append()\nplik = open('plik1.txt', 'a')\nplik.write(&quot;\\n&quot;)  # Dodanie nowej linii przed nowymi danymi\nplik.write(&quot;To jest nowa linia&quot;)\nplik.close()\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\"># Przyk\u0142ad zastosowania trybu append()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&#39;plik1.txt&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;a&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik.write(<\/span><span style=\"color: #032F62\">&quot;<\/span><span style=\"color: #005CC5\">\\n<\/span><span style=\"color: #032F62\">&quot;<\/span><span style=\"color: #24292E\">)  <\/span><span style=\"color: #6A737D\"># Dodanie nowej linii przed nowymi danymi<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik.write(<\/span><span style=\"color: #032F62\">&quot;To jest nowa linia&quot;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik.close()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Po uruchomieniu programu, plik1.txt b\u0119dzie wygl\u0105da\u0142 nast\u0119puj\u0105co:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>To jest przykladowy plik tekstowy.\nDo zobaczenia!\nTo jest nowa linia<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Zwr\u00f3\u0107my uwag\u0119, \u017ce u\u017cycie trybu zapisu <code>'w'<\/code> spowodowa\u0142oby nadpisanie ca\u0142ej zawarto\u015bci pliku. <\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_96c85c-9c, .wp-block-kadence-advancedheading.kt-adv-heading7840_96c85c-9c[data-kb-block=\"kb-adv-heading7840_96c85c-9c\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_96c85c-9c mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_96c85c-9c[data-kb-block=\"kb-adv-heading7840_96c85c-9c\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_96c85c-9c img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_96c85c-9c[data-kb-block=\"kb-adv-heading7840_96c85c-9c\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading7840_96c85c-9c wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_96c85c-9c\">Zapis polskich znak\u00f3w do pliku tekstowego<\/h3>\n\n\n\n<p><br>We wcze\u015bniejszych przyk\u0142adach nie stosowali\u015bmy polskich znak\u00f3w. U\u017cycie ich wywo\u0142a\u0142oby <a href=\"https:\/\/softinery.com\/pl\/kurs-python-wyjatki\/\">b\u0142\u0105d<\/a> <code>UnicodeEncodeError<\/code>. Zwi\u0105zane jest to z pr\u00f3b\u0105 zapisu znak\u00f3w, kt\u00f3re nie s\u0105 obs\u0142ugiwane w standardzie kodowania <code>cp1252<\/code>, kt\u00f3ry jest domy\u015blnym kodowaniem w niekt\u00f3rych systemach Windows. Rozwi\u0105zaniem tego problemu jest ustawienie kodowania na <code>utf-8<\/code>, kt\u00f3re pozwoli na zapisywanie znak\u00f3w Unicode.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"plik2 = open('plik2.txt', 'w', encoding='utf-8')\n\n# zapisz tre\u015b\u0107 do plik2.txt\nplik2.write('Zapisana tre\u015b\u0107 do pliku.\\n')\nplik2.write('Koniec pliku.\\n')\nplik2.close()\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #24292E\">plik2 <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&#39;plik2.txt&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;w&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #E36209\">encoding<\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #032F62\">&#39;utf-8&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># zapisz tre\u015b\u0107 do plik2.txt<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik2.write(<\/span><span style=\"color: #032F62\">&#39;Zapisana tre\u015b\u0107 do pliku.<\/span><span style=\"color: #005CC5\">\\n<\/span><span style=\"color: #032F62\">&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik2.write(<\/span><span style=\"color: #032F62\">&#39;Koniec pliku.<\/span><span style=\"color: #005CC5\">\\n<\/span><span style=\"color: #032F62\">&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik2.close()<\/span><\/span><\/code><\/pre><\/div>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_55115a-1e, .wp-block-kadence-advancedheading.kt-adv-heading7840_55115a-1e[data-kb-block=\"kb-adv-heading7840_55115a-1e\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_55115a-1e mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_55115a-1e[data-kb-block=\"kb-adv-heading7840_55115a-1e\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_55115a-1e img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_55115a-1e[data-kb-block=\"kb-adv-heading7840_55115a-1e\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading7840_55115a-1e wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_55115a-1e\">Wbudowane funkcje Python do odczytu i zapisu<\/h2>\n\n\n\n<p>Opr\u00f3cz wy\u017cej wymienionych funkcji Python dostarcza jeszcze kilka wbudowanych <a href=\"https:\/\/softinery.com\/pl\/blog\/kurs-python-funkcje\/\">funkcji<\/a> s\u0142u\u017c\u0105cych do odczytu i zapisu w plikach. Poni\u017cej przedstawi\u0142em kilka przyk\u0142adowych:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>readline()<\/code>: odczytuje lini\u0119 z pliku i zwraca jako ci\u0105g znak\u00f3w.<\/li>\n\n\n\n<li><code>readlines()<\/code>: zwraca list\u0119, w kt\u00f3rej ka\u017cdy element jest pojedyncz\u0105 lini\u0105 pliku.<\/li>\n\n\n\n<li><code>writelines()<\/code>: zapisuje list\u0119 ci\u0105g\u00f3w znak\u00f3w do pliku.<\/li>\n\n\n\n<li><code>append()<\/code>: do\u0142\u0105cza ci\u0105g znak\u00f3w do pliku zamiast nadpisywa\u0107 plik.<\/li>\n\n\n\n<li><code>seek()<\/code>: przesuwa wska\u017anik pozycji w pliku na okre\u015blon\u0105 pozycj\u0119.<\/li>\n<\/ul>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_1d5ac9-58, .wp-block-kadence-advancedheading.kt-adv-heading7840_1d5ac9-58[data-kb-block=\"kb-adv-heading7840_1d5ac9-58\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_1d5ac9-58 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_1d5ac9-58[data-kb-block=\"kb-adv-heading7840_1d5ac9-58\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_1d5ac9-58 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_1d5ac9-58[data-kb-block=\"kb-adv-heading7840_1d5ac9-58\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading7840_1d5ac9-58 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_1d5ac9-58\">Kopiowanie pliku w Pythonie przy u\u017cyciu modu\u0142u shutil<\/h2>\n\n\n\n<p>Do kopiowania plik\u00f3w mo\u017cemy u\u017cy\u0107 <a href=\"https:\/\/softinery.com\/pl\/blog\/kurs-python-moduly-i-pakiety\/\">modu\u0142u<\/a> <code>shutil<\/code>, a konkretnie <a href=\"https:\/\/softinery.com\/pl\/blog\/kurs-python-funkcje\/\">funkcj\u0119<\/a> <code>copyfiles()<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"import shutil\n\n# \u015acie\u017cka pliku \u017ar\u00f3d\u0142owego i docelowego\nplik_zrodlowy = 'e:\\Folder_1\\plik.txt'\nplik_docelowy = 'e:\\Folder_2\\plik.txt'\n\n# Skopiowanie pliku z plik_zrodlowy.txt do plik_docelowy.txt\nshutil.copyfile(plik_zrodlowy, plik_docelowy)\n\nprint(&quot;Plik zosta\u0142 skopiowany.&quot;)\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">import<\/span><span style=\"color: #24292E\"> shutil<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># \u015acie\u017cka pliku \u017ar\u00f3d\u0142owego i docelowego<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik_zrodlowy <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&#39;e:\\Folder_1\\plik.txt&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">plik_docelowy <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&#39;e:\\Folder_2\\plik.txt&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># Skopiowanie pliku z plik_zrodlowy.txt do plik_docelowy.txt<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">shutil.copyfile(plik_zrodlowy, plik_docelowy)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #005CC5\">print<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&quot;Plik zosta\u0142 skopiowany.&quot;<\/span><span style=\"color: #24292E\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><a href=\"https:\/\/softinery.com\/pl\/blog\/kurs-python-funkcje\/\">Funkcja<\/a> <code>copyfile()<\/code> kopiuje zawarto\u015b\u0107 pliku \u017ar\u00f3d\u0142owego do pliku docelowego. Je\u015bli plik docelowy ju\u017c istnieje, zostanie on nadpisany.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_097e51-44, .wp-block-kadence-advancedheading.kt-adv-heading7840_097e51-44[data-kb-block=\"kb-adv-heading7840_097e51-44\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_097e51-44 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_097e51-44[data-kb-block=\"kb-adv-heading7840_097e51-44\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_097e51-44 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_097e51-44[data-kb-block=\"kb-adv-heading7840_097e51-44\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading7840_097e51-44 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_097e51-44\">Usuwanie pliku w Pythonie przy u\u017cyciu modu\u0142u os<\/h2>\n\n\n\n<p>Do usuwania plik\u00f3w w Pythonie s\u0142u\u017cy funkcja <code>remove()<\/code> z <a href=\"https:\/\/softinery.com\/pl\/blog\/kurs-python-moduly-i-pakiety\/\">modu\u0142u<\/a> <code>os<\/code>.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"import os\n\n# \u015acie\u017cka do pliku, kt\u00f3ry chcemy usun\u0105\u0107\nsciezka_do_pliku = 'e:\\Folder_2\\plik.txt'\n\n# Sprawdzenie, czy plik istnieje\nif os.path.exists(sciezka_do_pliku):\n    # Usuni\u0119cie pliku\n    os.remove(sciezka_do_pliku)\n    print(f&quot;Plik {sciezka_do_pliku} zosta\u0142 usuni\u0119ty.&quot;)\nelse:\n    print(f&quot;Plik {sciezka_do_pliku} nie istnieje.&quot;)\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">import<\/span><span style=\"color: #24292E\"> os<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># \u015acie\u017cka do pliku, kt\u00f3ry chcemy usun\u0105\u0107<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">sciezka_do_pliku <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&#39;e:\\Folder_2\\plik.txt&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># Sprawdzenie, czy plik istnieje<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\"> os.path.exists(sciezka_do_pliku):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #6A737D\"># Usuni\u0119cie pliku<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    os.remove(sciezka_do_pliku)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #005CC5\">print<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">f<\/span><span style=\"color: #032F62\">&quot;Plik <\/span><span style=\"color: #005CC5\">{<\/span><span style=\"color: #24292E\">sciezka_do_pliku<\/span><span style=\"color: #005CC5\">}<\/span><span style=\"color: #032F62\"> zosta\u0142 usuni\u0119ty.&quot;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">else<\/span><span style=\"color: #24292E\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #005CC5\">print<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">f<\/span><span style=\"color: #032F62\">&quot;Plik <\/span><span style=\"color: #005CC5\">{<\/span><span style=\"color: #24292E\">sciezka_do_pliku<\/span><span style=\"color: #005CC5\">}<\/span><span style=\"color: #032F62\"> nie istnieje.&quot;<\/span><span style=\"color: #24292E\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>W powy\u017cszym przyk\u0142adzie widzimy, \u017ce zanim usuniemy plik (linia 9), to sprawdzamy czy ten plik istnieje przy u\u017cyciu funkcji <code>os.path.exists()<\/code>. Wynika to z faktu, \u017ce gdyby\u015bmy chcieli usun\u0105\u0107 nieistniej\u0105cy plik, to program zwr\u00f3ci\u0142by b\u0142\u0105d:<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-d551537a9a5adaf14779fe49eb0f713f\" style=\"color:#c41919\">FileNotFoundError<\/p>\n\n\n\n<p>Alternatywnym podej\u015bciem jest <a href=\"https:\/\/softinery.com\/pl\/kurs-python-wyjatki\/\">obs\u0142uga wyj\u0105tk\u00f3w<\/a>, kt\u00f3ra opisana zostanie bardziej obszernie w innym artykule. W tym rozwi\u0105zaniu fragment kodu, kt\u00f3ry mo\u017ce wywo\u0142a\u0107 FileNotFoundError umieszczamy w bloku <code>try<\/code>. W przypadku wyst\u0105pienia tego b\u0142\u0119du zostanie on przechwycony przez instrukcj\u0119 <code>except<\/code>. Kod programu wygl\u0105da nast\u0119puj\u0105co:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"import os\n\nsciezka_do_pliku = 'plik_do_usuniecia.txt'\n\ntry:\n    os.remove(sciezka_do_pliku)\n    print(f&quot;Plik {sciezka_do_pliku} zosta\u0142 usuni\u0119ty.&quot;)\nexcept FileNotFoundError as e:\n    print(f&quot;B\u0142\u0105d podczas usuwania pliku {sciezka_do_pliku}: {e}&quot;)\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">import<\/span><span style=\"color: #24292E\"> os<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">sciezka_do_pliku <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&#39;plik_do_usuniecia.txt&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">try<\/span><span style=\"color: #24292E\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    os.remove(sciezka_do_pliku)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #005CC5\">print<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">f<\/span><span style=\"color: #032F62\">&quot;Plik <\/span><span style=\"color: #005CC5\">{<\/span><span style=\"color: #24292E\">sciezka_do_pliku<\/span><span style=\"color: #005CC5\">}<\/span><span style=\"color: #032F62\"> zosta\u0142 usuni\u0119ty.&quot;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">except<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">FileNotFoundError<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">as<\/span><span style=\"color: #24292E\"> e:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #005CC5\">print<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">f<\/span><span style=\"color: #032F62\">&quot;B\u0142\u0105d podczas usuwania pliku <\/span><span style=\"color: #005CC5\">{<\/span><span style=\"color: #24292E\">sciezka_do_pliku<\/span><span style=\"color: #005CC5\">}<\/span><span style=\"color: #032F62\">: <\/span><span style=\"color: #005CC5\">{<\/span><span style=\"color: #24292E\">e<\/span><span style=\"color: #005CC5\">}<\/span><span style=\"color: #032F62\">&quot;<\/span><span style=\"color: #24292E\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_c2f796-b1, .wp-block-kadence-advancedheading.kt-adv-heading7840_c2f796-b1[data-kb-block=\"kb-adv-heading7840_c2f796-b1\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_c2f796-b1 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_c2f796-b1[data-kb-block=\"kb-adv-heading7840_c2f796-b1\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_c2f796-b1 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_c2f796-b1[data-kb-block=\"kb-adv-heading7840_c2f796-b1\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading7840_c2f796-b1 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_c2f796-b1\">Pliki csv<\/h2>\n\n\n\n<p>CSV (ang. comma-separated values) to popularny format pliku tekstowego, w kt\u00f3rym dane odzwierciedlaj\u0105 zapis tabelaryczny. Ka\u017cda linia w pliku csv reprezentuje wiersz tabeli, a warto\u015bci oddzielane przecinkiem, b\u0105d\u017a innym zdefiniowanym znakiem, odpowiadaj\u0105 poszczeg\u00f3lnym kom\u00f3rkom tabeli. We\u017amy przyk\u0142adowy plik kontakty.csv, o nast\u0119puj\u0105cej tre\u015bci:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Imi\u0119,Nazwisko,Email,Telefon\nJan,Kowalski,jan.kowalski@email.pl,123456789\nAnna,Nowak,anna.nowak@email.pl,987654321<\/code><\/pre>\n\n\n\n<p>Plik ten w formie tabelarycznej (np. w Excelu) wygl\u0105da\u0142by nast\u0119puj\u0105co:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Imi\u0119<\/th><th>Nazwisko<\/th><th>Email<\/th><th>Telefon<\/th><\/tr><\/thead><tbody><tr><td>Jan<\/td><td>Kowalski<\/td><td>jan.kowalski@email.pl<\/td><td>123456789<\/td><\/tr><tr><td>Anna<\/td><td>Nowak<\/td><td>anna.nowak@email.com<\/td><td>987654321<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Pliki csv s\u0105 bardzo przydatne, ze wzgl\u0119du na prost\u0105 struktur\u0119 i \u0142atwo\u015b\u0107 odczytu i zapisu. Z tego wzgl\u0119du r\u00f3wnie\u017c w Pythonie bardzo cz\u0119sto korzysta si\u0119 z tego formatu. Przyjrzyjmy si\u0119 jak najpro\u015bciej wczyta\u0107 i zapisa\u0107 dane do pliku csv.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"import csv\n\n# Otw\u00f3rz plik CSV w trybie odczytu\nwith open('kontakty.csv', 'r') as csvfile:\n\n    # Utw\u00f3rz obiekt reader\n    reader = csv.reader(csvfile, delimiter=',')\n\n    # Pomi\u0144 nag\u0142\u00f3wek\n    next(reader, None)\n\n    # Iteruj po wierszach pliku\n    for row in reader:\n        print(row)\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">import<\/span><span style=\"color: #24292E\"> csv<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># Otw\u00f3rz plik CSV w trybie odczytu<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">with<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&#39;kontakty.csv&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;r&#39;<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">as<\/span><span style=\"color: #24292E\"> csvfile:<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #6A737D\"># Utw\u00f3rz obiekt reader<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    reader <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> csv.reader(csvfile, <\/span><span style=\"color: #E36209\">delimiter<\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #032F62\">&#39;,&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #6A737D\"># Pomi\u0144 nag\u0142\u00f3wek<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #005CC5\">next<\/span><span style=\"color: #24292E\">(reader, <\/span><span style=\"color: #005CC5\">None<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #6A737D\"># Iteruj po wierszach pliku<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">for<\/span><span style=\"color: #24292E\"> row <\/span><span style=\"color: #D73A49\">in<\/span><span style=\"color: #24292E\"> reader:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #005CC5\">print<\/span><span style=\"color: #24292E\">(row)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Wynik:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;'Jan', 'Kowalski', 'jan.kowalski@email.pl', '123456789']\n&#91;'Anna', 'Nowak', 'anna.nowak@email.pl', '987654321']<\/code><\/pre>\n\n\n\n<p>Poni\u017c przyk\u0142ad pokazuje jak dopisa\u0107 dane do pliku csv.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# Otw\u00f3rz plik CSV w trybie dopisywania\nwith open('kontakty.csv', 'a', newline='', encoding='utf-8') as csvfile:\n\n    # Utw\u00f3rz obiekt writer\n    writer = csv.writer(csvfile, delimiter=',')\n\n    # Zapisz wiersze do pliku\n    writer.writerow(['Rafa\u0142', 'Marcinkiewicz', 'rafal.marcinkiewicz@email.pl', '34545634'])\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\"># Otw\u00f3rz plik CSV w trybie dopisywania<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">with<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&#39;kontakty.csv&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;a&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #E36209\">newline<\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #032F62\">&#39;&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #E36209\">encoding<\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #032F62\">&#39;utf-8&#39;<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">as<\/span><span style=\"color: #24292E\"> csvfile:<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #6A737D\"># Utw\u00f3rz obiekt writer<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    writer <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> csv.writer(csvfile, <\/span><span style=\"color: #E36209\">delimiter<\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #032F62\">&#39;,&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #6A737D\"># Zapisz wiersze do pliku<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    writer.writerow([<\/span><span style=\"color: #032F62\">&#39;Rafa\u0142&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;Marcinkiewicz&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;rafal.marcinkiewicz@email.pl&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;34545634&#39;<\/span><span style=\"color: #24292E\">])<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Po wykonaniu programu plik kontakty.csv b\u0119dzie wygl\u0105da\u0142 nast\u0119puj\u0105co:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;'Jan', 'Kowalski', 'jan.kowalski@email.pl', '123456789']\n&#91;'Anna', 'Nowak', 'anna.nowak@email.pl', '987654321']\n&#91;'Rafa\u0142', 'Marcinkiewicz', 'rafal.marcinkiewicz@email.pl', '34545634']<\/code><\/pre>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading7840_611b53-e5, .wp-block-kadence-advancedheading.kt-adv-heading7840_611b53-e5[data-kb-block=\"kb-adv-heading7840_611b53-e5\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading7840_611b53-e5 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading7840_611b53-e5[data-kb-block=\"kb-adv-heading7840_611b53-e5\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading7840_611b53-e5 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading7840_611b53-e5[data-kb-block=\"kb-adv-heading7840_611b53-e5\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading7840_611b53-e5 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading7840_611b53-e5\">Peklowanie<\/h2>\n\n\n\n<p>Peklowanie (ang. pickling) s\u0142u\u017cy do tzw. serializacji, czyli procesu polegaj\u0105cego na zapisie na dysku dowolnego obiektu Pythona, np. listy, <a href=\"https:\/\/softinery.com\/pl\/kurs-python-slowniki\/\">s\u0142ownika<\/a>, <a href=\"https:\/\/softinery.com\/pl\/python-krotka\/\">krotki<\/a>, itp. Taki plik zapisany w postaci strumienia bajt\u00f3w zawiera wszystkie niezb\u0119dne informacje o obiekcie, dzi\u0119ki czemu mo\u017cna go zrekonstruowa\u0107, czyli odpeklowa\u0107 i przywr\u00f3ci\u0107 do pierwotnej postaci w dowolnym skrypcie Pythona.<\/p>\n\n\n\n<p>W poni\u017cszym przyk\u0142adzie zapiklujemy przyk\u0142adowy <a href=\"https:\/\/softinery.com\/pl\/kurs-python-slowniki\/\">s\u0142ownik<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# Peklowanie\nimport pickle\n\n# Tworzenie przyk\u0142adowego s\u0142ownika\ndane = {\n    'imi\u0119': 'Jan',\n    'wiek': 30,\n    'miasto': 'Warszawa'\n}\n\n# Zapisywanie s\u0142ownika do pliku za pomoc\u0105 pickle\nwith open('dane.pickle', 'wb') as plik:\n    pickle.dump(dane, plik)\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\"># Peklowanie<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">import<\/span><span style=\"color: #24292E\"> pickle<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># Tworzenie przyk\u0142adowego s\u0142ownika<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">dane <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #032F62\">&#39;imi\u0119&#39;<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">&#39;Jan&#39;<\/span><span style=\"color: #24292E\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #032F62\">&#39;wiek&#39;<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #005CC5\">30<\/span><span style=\"color: #24292E\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #032F62\">&#39;miasto&#39;<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">&#39;Warszawa&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># Zapisywanie s\u0142ownika do pliku za pomoc\u0105 pickle<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">with<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&#39;dane.pickle&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;wb&#39;<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">as<\/span><span style=\"color: #24292E\"> plik:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    pickle.dump(dane, plik)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>W linii 2 importujemy modu\u0142 <code>pickle<\/code> zawieraj\u0105cy <a href=\"https:\/\/softinery.com\/pl\/blog\/kurs-python-funkcje\/\">funkcje<\/a> niezb\u0119dne w procesie peklowania. W linii 5 tworzymy przyk\u0142adowy <a href=\"https:\/\/softinery.com\/pl\/kurs-python-slowniki\/\">s\u0142ownik<\/a>. W linii 12 otwieramy plik przy u\u017cyciu wcze\u015bniej om\u00f3wionej konstrukcji <code>with open<\/code>. Zwr\u00f3\u0107my uwag\u0119, \u017ce plik otwieramy w trybie <code>wb<\/code>, czyli &#8216;write binary&#8217;, z uwagi na to, \u017ce pickle to plik binarny. W linii 13 wykonujemy zapis do pliku przy u\u017cyciu funkcji <code>plickle.dump<\/code>.<\/p>\n\n\n\n<p>Proces odwrotny, czyli odpeklowanie, wykonujemy przy u\u017cyciu funkcji <code>pickle.load<\/code>. W przyk\u0142adzie poni\u017cej wczytujemy dane do zmiennej, kt\u00f3rej automatycznie przypisana zostaje struktura s\u0142ownika. <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#ffffff\"><span style=\"background:#2f363c;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#ffffff\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# Odczytywanie s\u0142ownika z pliku za pomoc\u0105 pickle\nwith open('dane.pickle', 'rb') as plik:\n    wczytane_dane = pickle.load(plik)\n\nprint(&quot;Wczytane dane:&quot;, wczytane_dane)\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\"># Odczytywanie s\u0142ownika z pliku za pomoc\u0105 pickle<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">with<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">open<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&#39;dane.pickle&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;rb&#39;<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">as<\/span><span style=\"color: #24292E\"> plik:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    wczytane_dane <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pickle.load(plik)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #005CC5\">print<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">&quot;Wczytane dane:&quot;<\/span><span style=\"color: #24292E\">, wczytane_dane)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Wynik:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Wczytane dane: {'imi\u0119': 'Jan', 'wiek': 30, 'miasto': 'Warszawa'}<\/code><\/pre>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7840_b8e1b7-44 .kt-block-spacer{height:60px;}.wp-block-kadence-spacer.kt-block-spacer-7840_b8e1b7-44 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7840_b8e1b7-44\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Operacje na plikach s\u0105 wykorzystywane w wielu zagadnieniach programistycznych, in\u017cynierskich, naukowych i analizie danych. Jednym z takich zagadnie\u0144 mo\u017ce by\u0107 masowa obr\u00f3bka plik\u00f3w graficznych (np. zmiana rozmiaru, kolor\u00f3w), filtrowanie plik\u00f3w o wybranych rozszerzeniach i wiele innych. J\u0119zyk Python dysponuje sporym zbiorem funkcji wbudowanych do operacji na plikach. Funkcjonalno\u015b\u0107 j\u0119zyka w tym obszarze mo\u017cemy poszerzy\u0107 wykorzystuj\u0105c&hellip;&nbsp;<a href=\"https:\/\/softinery.com\/pl\/blog\/python-operacje-na-plikach\/\" rel=\"bookmark\">Dowiedz si\u0119 wi\u0119cej &raquo;<span class=\"screen-reader-text\">Python: operacje na plikach. Odczyt i zapis do pliku tekstowego<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":578,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-7840","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Python: operacje na plikach. Odczyt i zapis do pliku tekstowego<\/title>\n<meta name=\"description\" content=\"W artykule omawiam obs\u0142ug\u0119 plik\u00f3w w Pythonie. Mi\u0119dzy innymi przedstawiam przyk\u0142ady program\u00f3w do odczytu i zapisu do pliku tekstowego.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/softinery.com\/pl\/blog\/python-operacje-na-plikach\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python: operacje na plikach. Odczyt i zapis do pliku tekstowego\" \/>\n<meta property=\"og:description\" content=\"W artykule omawiam obs\u0142ug\u0119 plik\u00f3w w Pythonie. Mi\u0119dzy innymi przedstawiam przyk\u0142ady program\u00f3w do odczytu i zapisu do pliku tekstowego.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/softinery.com\/pl\/blog\/python-operacje-na-plikach\/\" \/>\n<meta property=\"og:site_name\" content=\"Softinery\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-06T11:26:54+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minut\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Python: operacje na plikach. Odczyt i zapis do pliku tekstowego","description":"W artykule omawiam obs\u0142ug\u0119 plik\u00f3w w Pythonie. Mi\u0119dzy innymi przedstawiam przyk\u0142ady program\u00f3w do odczytu i zapisu do pliku tekstowego.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/softinery.com\/pl\/blog\/python-operacje-na-plikach\/","og_locale":"pl_PL","og_type":"article","og_title":"Python: operacje na plikach. Odczyt i zapis do pliku tekstowego","og_description":"W artykule omawiam obs\u0142ug\u0119 plik\u00f3w w Pythonie. Mi\u0119dzy innymi przedstawiam przyk\u0142ady program\u00f3w do odczytu i zapisu do pliku tekstowego.","og_url":"https:\/\/softinery.com\/pl\/blog\/python-operacje-na-plikach\/","og_site_name":"Softinery","article_modified_time":"2024-08-06T11:26:54+00:00","twitter_card":"summary_large_image","twitter_misc":{"Szacowany czas czytania":"6 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/softinery.com\/pl\/blog\/python-operacje-na-plikach\/","url":"https:\/\/softinery.com\/pl\/blog\/python-operacje-na-plikach\/","name":"Python: operacje na plikach. Odczyt i zapis do pliku tekstowego","isPartOf":{"@id":"https:\/\/softinery.com\/pl\/#website"},"datePublished":"2024-02-26T12:48:10+00:00","dateModified":"2024-08-06T11:26:54+00:00","description":"W artykule omawiam obs\u0142ug\u0119 plik\u00f3w w Pythonie. Mi\u0119dzy innymi przedstawiam przyk\u0142ady program\u00f3w do odczytu i zapisu do pliku tekstowego.","breadcrumb":{"@id":"https:\/\/softinery.com\/pl\/blog\/python-operacje-na-plikach\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/softinery.com\/pl\/blog\/python-operacje-na-plikach\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/softinery.com\/pl\/blog\/python-operacje-na-plikach\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/softinery.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/softinery.com\/pl\/blog\/"},{"@type":"ListItem","position":3,"name":"Python: operacje na plikach. Odczyt i zapis do pliku tekstowego"}]},{"@type":"WebSite","@id":"https:\/\/softinery.com\/pl\/#website","url":"https:\/\/softinery.com\/pl\/","name":"Softinery","description":"Rozwi\u0105zania IT dla nowoczesnego przemys\u0142u","publisher":{"@id":"https:\/\/softinery.com\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/softinery.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/softinery.com\/pl\/#organization","name":"Softinery","url":"https:\/\/softinery.com\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/softinery.com\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/softinery.com\/wp-content\/uploads\/sites\/5\/2023\/05\/cropped-Gear-logo-transparent-1.webp","contentUrl":"https:\/\/softinery.com\/wp-content\/uploads\/sites\/5\/2023\/05\/cropped-Gear-logo-transparent-1.webp","width":512,"height":512,"caption":"Softinery"},"image":{"@id":"https:\/\/softinery.com\/pl\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/softinery.com\/pl\/wp-json\/wp\/v2\/pages\/7840","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/softinery.com\/pl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/softinery.com\/pl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/softinery.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/softinery.com\/pl\/wp-json\/wp\/v2\/comments?post=7840"}],"version-history":[{"count":119,"href":"https:\/\/softinery.com\/pl\/wp-json\/wp\/v2\/pages\/7840\/revisions"}],"predecessor-version":[{"id":9688,"href":"https:\/\/softinery.com\/pl\/wp-json\/wp\/v2\/pages\/7840\/revisions\/9688"}],"up":[{"embeddable":true,"href":"https:\/\/softinery.com\/pl\/wp-json\/wp\/v2\/pages\/578"}],"wp:attachment":[{"href":"https:\/\/softinery.com\/pl\/wp-json\/wp\/v2\/media?parent=7840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/softinery.com\/pl\/wp-json\/wp\/v2\/categories?post=7840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/softinery.com\/pl\/wp-json\/wp\/v2\/tags?post=7840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}