日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python tts 保存_Python 文件和目录操作学习

發布時間:2025/3/8 python 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python tts 保存_Python 文件和目录操作学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文件與文件路徑

文件有兩個關鍵屬性:文件名和路徑。

路徑指明了文件在計算機上的位置。

文件名中,最后一個句點之后的部分稱為文件的“擴展名”,它指出了文件的類型

目錄也叫文件夾,文件夾可以包含文件和其他文件夾

路徑分隔符

在 Windows 上,路徑書寫使用倒斜杠作為文件夾之間的分隔符

在 OS X 和Linux 上,使用正斜杠作為它們的路徑分隔符

解決方法: 如果將單個文件和路徑上的文件夾名稱的字符串傳遞給它,os.path.join()就會返回一個文件路徑的字符串,包含正確的路徑分隔符。例如:os.path.join('usr', 'bin', 'spam')

當前工作目錄

os.getcwd():取得當前工作路徑的字符串

os.chdir():改變當前工作路徑

絕對路徑與相對路徑

有兩種方法指定一個文件路徑:

絕對路徑,總是從根文件夾開始

相對路徑,它相對于程序的當前工作目錄

用os.makedirs()創建新文件夾

os.makedirs()將創建所有必要的中間文件夾,目的是確保完整路徑名存在

os.path模塊

os.path 模塊包含了許多與文件名和文件路徑相關的有用函數

因為 os.path 是 os 模塊中的模塊,所以只要執行 import os 就可以導入它

處理絕對路徑和相對路徑

os.path 模塊提供了一些函數,返回一個相對路徑的絕對路徑,以及檢查給定的路徑是否為絕對路徑:

調用 os.path.abspath(path)將返回參數的絕對路徑的字符串。這是將相對路徑轉換為絕對路徑的簡便方法。

調用 os.path.isabs(path),如果參數是一個絕對路徑,就返回 True,如果參數是一個相對路徑,就返回 False。

調用 os.path.relpath(path, start)將返回從 start 路徑到 path 的相對路徑的字符串。如果沒有提供 start,就使用當前工作目錄作為開始路徑。

調用 os.path.dirname(path)將返回一個字符串,它包含 path 參數中最后一個斜杠之前的所有內容。調用 os.path.basename(path)將返回一個字符串,它包含 path 參數中最后一個斜杠之后的所有內容。

如果同時需要一個路徑的目錄名稱和基本名稱,就可以調用 os.path.split()

可以調用 os.path.dirname()和 os.path.basename(),將它們的返回值放在一個元組中,從而得到同樣的元組

os.path.split()不會接受一個文件路徑并返回每個文件夾的字符串的列表。如果需要這樣,請使用split()字符串方法,并根據os.path.sep 中的字符串進行分割?;貞浺幌?#xff0c;根據程序運行的計算機,os.path.sep 變量設置為正確的文件夾分割斜杠。

split()字符串方法將返回一個列表,包含該路徑的所有部分。如果向它傳遞os.path.sep,就能在所有操作系統上工作。

查看文件大小和文件夾內容

一旦有辦法處理文件路徑,就可以開始搜集特定文件和文件夾的信息。os.path 模塊提供了一些函數,用于查看文件的字節數以及給定文件夾中的文件和子文件夾

調用 os.path.getsize(path)將返回 path 參數中文件的字節數

調用 os.listdir(path)將返回文件名字符串的列表,包含 path 參數中的每個文件(請注意,這個函數在 os 模塊中,而不是 os.path)

檢查路徑有效性

如果你提供的路徑不存在,許多 Python 函數就會崩潰并報錯。os.path 模塊提供了一些函數,用于檢測給定的路徑是否存在,以及它是文件還是文件夾

如果 path 參數所指的文件或文件夾存在,調用 os.path.exists(path)將返回 True,否則返回 False。

如果 path 參數存在,并且是一個文件,調用 os.path.isfile(path)將返回 True,否則返回 False。

如果 path 參數存在,并且是一個文件夾,調用 os.path.isdir(path)將返回 True,否則返回 False。

利用 os.path.exists()函數,可以確定 DVD 或閃存盤當前是否連在計算機上

文件讀寫過程

純文本文件 只包含基本文本字符,不包含字體、大小和顏色信息

二進制文件 是所有其他文件類型,諸如字處理文檔、PDF、圖像、電子表格和可執行程序

用open()函數打開文件

要用 open()函數打開一個文件,就要向它傳遞一個字符串路徑,表明希望打開的文件。這既可以是絕對路徑,也可以是相對路徑。open()函數返回一個 File 對象

讀取文件內容

如果你希望將整個文件的內容讀取為一個字符串值,就使用 File 對象的 read()方法

如果你將文件的內容看成是單個大字符串,read()方法就返回保存在該文件中的這個字符串

或者,可以使用 readlines()方法,從該文件取得一個字符串的列表。列表中的每個字符串就是文本中的每一行

每個字符串值都以一個換行字符\n 結束。除了文件的最后一行。與單個大字符串相比,字符串的列表通常更容易處理

寫入文件

如果打開文件時用讀模式,就不能寫入文件

需要以“寫入純文本模式”或“添加純文本模式”打開該文件,或簡稱為“寫模式”和“添加模式”

寫模式將覆寫原有的文件,從頭開始,就像你用一個新值覆寫一個變量的值

將'w'作為第二個參數傳遞給 open(),以寫模式打開該文件

將'a'作為第二個參數傳遞給 open(),以添加模式打開該文件

如果傳遞給 open()的文件名不存在,寫模式和添加模式都會創建一個新的空文件。在讀取或寫入文件后,調用 close()方法,然后才能再次打開該文件。

write()方法不會像 print()函數那樣,在字符串的末尾自動添加換行字符。必須自己添加該字符

用shelve模塊保存變量

要利用shelve模塊讀寫數據,首先要導入它。調用函數shelve.open()并傳入一個文件名,然后將返回的值保存在一個變量中。

可以對這個變量的 shelf 值進行修改,就像它是一個字典一樣。當你完成時,在這個值上調用close()。

這些二進制文件包含了存儲在 shelf 中的數據。這些二進制文件的格式并不重要,你只需要知道 shelve 模塊做了什么,而不必知道它是怎么做的。該模塊讓你不用操心如何將程序的數據保存到文件中。

你的程序稍后可以使用 shelve 模塊,重新打開這些文件并取出數據。shelf 值不必用讀模式或寫模式打開,因為它們在打開后,既能讀又能寫。

就像字典一樣,shelf 值有 keys()和 values()方法,返回 shelf 中鍵和值的類似列表的值。因為這些方法返回類似列表的值,而不是真正的列表,所以應該將它們傳遞給 list()函數,取得列表的形式

用pprint.pformat()函數保存變量

pprint.pprint()函數將列表或字典中的內容“漂亮打印”到屏幕,而 pprint.pformat()函數將返回同樣的文本字符串,但不是打印它。這個字符串不僅是易于閱讀的格式,同時也是語法上正確的 Python 代碼。假定你有一個字典,保存在一個變量中,你希望保存這個變量和它的內容,以便將來使用。pprint.pformat()函數將提供一個字符串,你可以將它寫入.py 文件。該文件將成為你自己的模塊,如果你需要使用存儲在其中的變量,就可以導入它。

import 語句導入的模塊本身就是 Python 腳本。如果來自 pprint.pformat()的字符串保存為一個.py 文件,該文件就是一個可以導入的模塊,像其他模塊一樣。

由于 Python 腳本本身也是帶有.py 文件擴展名的文本文件,所以你的 Python 程序甚至可以生成其他 Python 程序。然后可以將這些文件導入到腳本中

創建一個.py 文件(而不是利用 shelve 模塊保存變量)的好處在于,因為它是一個文本文件,所以任何人都可以用一個簡單的文本編輯器讀取和修改該文件的內容。但是,對于大多數應用,利用 shelve 模塊來保存數據,是將變量保存到文件的最佳方式。只有基本數據類型,諸如整型、浮點型、字符串、列表和字典,可以作為簡單文本寫入一個文件。例如,File 對象就不能夠編碼為文本。

shutil模塊

shutil(或稱為 shell 工具)模塊中包含一些函數,讓你在 Python 程序中復制、移動、改名和刪除文件。要使用 shutil 的函數,首先需要 import shutil。

復制文件和文件夾

shutil.copy(source, destination),將路徑source 處的文件復制到路徑destination處的文件夾(source 和 destination 都是字符串)。如果 destination 是一個文件名,它將作為被復制文件的新名字。該函數返回一個字符串,表示被復制文件的路徑。

shutil.copy()將復制一個文件,shutil.copytree()將復制整個文件夾,以及它包含的文件夾和文件。調用 shutil.copytree(source, destination),將路徑 source 處的文件夾,包括它的所有文件和子文件夾,復制到路徑 destination 處的文件夾。source 和destination 參數都是字符串。該函數返回一個字符串,是新復制的文件夾的路徑。

文件和文件夾的移動與改名

shutil.move(source, destination),將路徑 source 處的文件夾移動到路徑destination,并返回新位置的絕對路徑的字符串。

如果 destination 指向一個文件夾,source 文件將移動到 destination 中,并保持原來的文件名。

destination 路徑也可以指定一個文件名。在下面的例子中,source 文件被移動并改名。

構成目的地的文件夾必須已經存在,否則 Python 會拋出異常

永久刪除文件和文件夾

利用 os 模塊中的函數,可以刪除一個文件或一個空文件夾。但利用 shutil 模塊,可以刪除一個文件夾及其所有的內容。

用 os.unlink(path)將刪除 path 處的文件。

調用 os.rmdir(path)將刪除 path 處的文件夾。該文件夾必須為空,其中沒有任何文件和文件夾。

調用 shutil.rmtree(path)將刪除 path 處的文件夾,它包含的所有文件和文件夾都會被刪除。

用send2trash模塊安全地刪除

因為 Python 內建的 shutil.rmtree()函數不可恢復地刪除文件和文件夾,所以 用起來可能有危險。刪除文件和文件夾的更好方法,是使用第三方的 send2trash 模塊。你可以在終端窗口中運行 pip install send2trash,安裝該模塊

利用 send2trash,比 Python 常規的刪除函數要安全得多,因為它會將文件夾和文件發送到計算機的垃圾箱或回收站,而不是永久刪除它們。如果因程序缺陷而用send2trash 刪除了某些你不想刪除的東西,稍后可以從垃圾箱恢復。

一般來說,總是應該使用 send2trash.send2trash()函數來刪除文件和文件夾。雖然它將文件發送到垃圾箱,讓你稍后能夠恢復它們,但是這不像永久刪除文件,不會釋放磁盤空間。如果你希望程序釋放磁盤空間,就要用 os 和 shutil 來刪除文件和文件夾。請注意,send2trash()函數只能將文件送到垃圾箱,不能從中恢復文件。

遍歷目錄樹

os.walk()函數被傳入一個字符串值,即一個文件夾的路徑。你可以在一個 for循環語句中使用 os.walk()函數,遍歷目錄樹,就像使用 range()函數遍歷一個范圍的數字一樣。

os.walk()在循環的每次迭代中,返回 3 個值:

當前文件夾名稱的字符串。

當前文件夾中子文件夾的字符串的列表。

當前文件夾中文件的字符串的列表。

所謂當前文件夾,是指 for 循環當前迭代的文件夾。程序的當前工作目錄,不會因為os.walk()而改變。

用zipfile模塊壓縮文件

讀取ZIP文件

要讀取ZIP文件的內容,首先必須創建一個ZipFile對象(請注意大寫首字母 Z和 F)。ZipFile對象在概念上與File對象相似

要創建一個 ZipFile對象,就調用 zipfile.ZipFile()函數,向它傳入一個字符串,表示.zip 文件的文件名。

請注意,zipfile 是 Python 模塊的名稱,ZipFile()是函數的名稱。

ZipFile 對象有一個 namelist()方法,返回 ZIP 文件中包含的所有文件和文件夾的字符串的列表。這些字符串可以傳遞給 ZipFile 對象的 getinfo()方法,返回一個關于特定文件的 ZipInfo 對象。ZipInfo 對象有自己的屬性,諸如表示字節數的 file_size和 compress_size,它們分別表示原來文件大小和壓縮后文件大小。ZipFile 對象表示整個歸檔文件,而 ZipInfo 對象則保存該歸檔文件中每個文件的有用信息。

從ZIP文件中解壓縮

ZipFile 對象的 extractall()方法從ZIP文件中解壓縮所有文件和文件夾,放到當前工作目錄中

可以向extractall()傳遞的一個文件夾名稱,它將文件解壓縮到那個文件夾,而不是當前工作目錄

如果傳遞給 extractall()方法的文件夾不存在,它會被創建

ZipFile 對象的 extract()方法從 ZIP 文件中解壓縮單個文件

傳遞給 extract()的字符串,必須匹配 namelist()返回的字符串列表中的一個?;蛘?#xff0c;你可以向 extract()傳遞第二個參數,將文件解壓縮到指定的文件夾,而不是當前工作目錄。如果第二個參數指定的文件夾不存在,Python 就會創建它。extract()的返回值是被壓縮后文件的絕對路徑。

創建和添加到ZIP文件

要創建你自己的壓縮 ZIP 文件,必須以“寫模式”打開 ZipFile 對象,即傳入'w'作為第二個參數(這類似于向 open()函數傳入'w',以寫模式打開一個文本文件)。

如果向 ZipFile 對象的 write()方法傳入一個路徑,Python 就會壓縮該路徑所指的文件,將它加到 ZIP 文件中。write()方法的第一個參數是一個字符串,代表要添加的文件名。第二個參數是“壓縮類型”參數,它告訴計算機使用怎樣的算法來壓縮文件??梢钥偸菍⑦@個值設置為 zipfile.ZIP_DEFLATED(這指定了 deflate 壓縮算法,它對各種類型的數據都很有效)。

就像寫入文件一樣,寫模式將擦除 ZIP 文件中所有原有的內容。如果只是希望將文件添加到原有的 ZIP 文件中,就要向 zipfile.ZipFile()傳入'a'作為第二個參數,以添加模式打開 ZIP 文件。

總結

以上是生活随笔為你收集整理的python tts 保存_Python 文件和目录操作学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产剧情一区二区三区 | av黄色小说 | 欧美成人做爰猛烈床戏 | 久久久黄色片 | 国产精品2019 | 国产精品久久久久久无人区 | 青青青免费在线视频 | 中文字幕第页 | 91麻豆成人精品国产 | 66亚洲一卡2卡新区成片发布 | av看片| 国产日本亚洲 | 超碰在线最新地址 | www.精品视频| 影音先锋中文字幕在线 | 一区二区在线精品 | 青青草在线视频免费观看 | 91成人毛片 | 亚洲成人av网址 | 羞羞动漫在线观看 | 免费在线观看污网站 | 国产精品久久久一区 | 午夜伦伦 | 国产日韩欧美精品在线观看 | 成av在线 | 亚洲av久久久噜噜噜噜 | 午夜两性视频 | 69毛片 | 日日夜夜免费视频 | 97精品一区二区视频在线观看 | 亚洲综合成人网 | 国产一区二区三区 | 久久不卡免费视频 | 日本泡妞xxxx免费视频软件 | 无码人妻av一区二区三区波多野 | 精品精品精品 | 日本中文字幕有码 | 2019年中文字幕 | 成人午夜视频免费在线观看 | 国产精品揄拍一区二区 | 国产激情视频在线观看 | 最近中文字幕av | 国产精品成av人在线视午夜片 | 女人脱下裤子让男人桶 | 一本大道东京热无码aⅴ | 国产小视频在线播放 | 久久久久99人妻一区二区三区 | 欧美特级一级片 | 欧美a级成人淫片免费看 | 好吊色在线观看 | 国产成人综合久久 | 欧美偷拍第一页 | 亚洲综合一区中 | 美女脱光内衣内裤 | 日本网站黄色 | 五月婷婷中文字幕 | 国产人妖视频 | 91日日夜夜 | 樱花影院电视剧免费 | 韩国成人理伦片免费播放 | 国产第99页 | 男人的天堂va | 欧美69囗交视频 | 最新成人 | 国产18毛片| 亚洲精品在线观 | 亚洲成人一区在线观看 | 欧美日韩亚洲一区二区 | 免费麻豆av| 久久久久久久久久国产精品 | 亚洲国产一二三区 | 自拍偷拍麻豆 | 精品麻豆 | 黄色网址视频 | 神马午夜91 | 成人网免费 | 日本性网站| 久久美女视频 | 亚洲一区二区av | 久久免费电影 | 裸体一区二区 | 欧美特级视频 | 五月天激情丁香 | 91在线观看喷潮 | 亚洲一区二区三区网站 | 久久久久亚洲国产 | www.污网站| 欧美手机在线视频 | 小早川怜子一区二区三区 | www.免费av| 日日操夜夜爱 | 久伊人网 | xxx久久| 国产女人呻吟高潮抽搐声 | av手机在线看 | 久久日本精品字幕区二区 | 97国产精品久久久 | 国产激情小视频 | 毛片网在线观看 |