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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++读取txt文件中的数字_在Python中读取包中的数据文件的三种方式

發(fā)布時間:2024/10/6 c/c++ 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++读取txt文件中的数字_在Python中读取包中的数据文件的三种方式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們知道,寫Python代碼的時候,如果一個包(package)里面的一個模塊要導(dǎo)入另一個模塊,那么我們可以使用相對導(dǎo)入:

假設(shè)當(dāng)前代碼結(jié)構(gòu)如下圖所示:

其中test_1是一個包,在util.py里面想導(dǎo)入同一個包里面的read.py中的read函數(shù),那么代碼可以寫為:

from .read import readdef util():read()

其中的.read表示當(dāng)前包目錄下的read.py文件。此時read.py文件中的內(nèi)容如下:

def read():print('閱讀文件')

通過包外面的main.py運行代碼,運行效果如下圖所示:

現(xiàn)在,我們增加一個數(shù)據(jù)文件,data.txt,它的內(nèi)容如下圖所示:

并且想通過read.py去讀取這個數(shù)據(jù)文件并打印出來。

修改read.py,試圖使用相對路徑來打開這個文件:

def read():with open('./data.txt', encoding='utf-8') as f:text = f.read()print(text)

運行代碼發(fā)現(xiàn)報錯:

這個原因很簡單,就是如果數(shù)據(jù)文件的地址寫為:./data.txt,那么Python就會從當(dāng)前工作區(qū)文件夾里面尋找data.txt。由于我們運行的是main.py,那么當(dāng)前工作區(qū)就是main.py所在的文件夾,而不是test_1文件夾。所以就會出現(xiàn)找不到文件的情況。

為了解決這個問題,我們有三種解決方式。

  • 使用絕對路徑
def read():with open('/Users/kingname/Project/DataFileExample/test_1/data.txt', encoding='utf-8') as f:text = f.read()print(text)

運行效果如下圖所示:

  • 先獲取read.py文件的絕對路徑,再拼接出數(shù)據(jù)文件的絕對路徑:
import osdef read():basepath = os.path.abspath(__file__)folder = os.path.dirname(basepath)data_path = os.path.join(folder, 'data.txt')with open(data_path, encoding='utf-8') as f:text = f.read()print(text)

運行效果如下圖所示:

  • 使用pkgutil庫
import pkgutildef read():data_bytes = pkgutil.get_data(__package__, 'data.txt')data_str = data_bytes.decode()print(data_str)

運行效果如下圖所示:

pkgutil是Python自帶的用于包管理相關(guān)操作的庫,pkgutil能根據(jù)包名找到包里面的數(shù)據(jù)文件,然后讀取為bytes型的數(shù)據(jù)。如果數(shù)據(jù)文件內(nèi)容是字符串,那么直接decode()以后就是正文內(nèi)容了。

為什么pkgutil讀取的數(shù)據(jù)文件是bytes型的內(nèi)容而不直接是字符串類型? 這是因為并不是所有數(shù)據(jù)文件都是字符串,如果某些數(shù)據(jù)文件是二進制文件或者圖片,那么以字符串方式打開就會導(dǎo)致報錯。所以為了通用,pkgutil會以bytes型方式讀入數(shù)據(jù),這相當(dāng)于open函數(shù)的“rb”讀取方式。

使用pkgutil還有一個好處,就是只要知道包名就可以找到對應(yīng)包下面的數(shù)據(jù)文件,數(shù)據(jù)文件并不一定要在當(dāng)前包里面。

例如修改代碼結(jié)構(gòu)如下圖所示:

另一個包test_2里面有一個數(shù)據(jù)文件data2.txt。此時如果要在teat_1包的read.py中讀取data2.txt中的內(nèi)容,那么只需要修改pkgutil.get_data的第一個參數(shù)為test_2和數(shù)據(jù)文件的名字即可,運行效果如下圖所示:

而前兩種方法都不如pkgutil簡單。

所以使用pkgutil可以大大簡化讀取包里面的數(shù)據(jù)文件的代碼。

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的c++读取txt文件中的数字_在Python中读取包中的数据文件的三种方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99re国产| 亚洲不卡一区二区三区 | 久久婷婷色 | 日韩精品免费看 | 1024国产视频 | 欧美在线一区二区三区四区 | 黄色一级视屏 | 欧美在线观看视频一区二区 | 中国美女一级片 | 五月婷婷影院 | 国产在视频线精品视频 | 国产色站 | 色com| 91久久精品国产91性色tv | 人妻丝袜一区二区三区 | 一边摸一边做爽的视频17国产 | 亚洲精品888| 午夜av免费观看 | 黄色污污视频 | 欧美日韩精品久久 | 国产精品第13页 | 天天色综合影视 | 久久免费播放视频 | 91精品国产aⅴ一区二区 | 欧美一级片免费在线观看 | 极品粉嫩小仙女高潮喷水久久 | 操人视频免费看 | 亚洲是色 | 国产又大又粗又长 | 日韩电影观看 | 一区二区三区四区影院 | 天天cao| 国产一级片免费在线观看 | 91蝌蚪少妇偷拍 | 色射影院| 欧美精品一二 | 亚洲黄色小说视频 | 好吊色视频一区二区 | 亚洲男女激情 | 亚洲双插 | 久久超碰精品 | 久久久黄色片 | 91精品婷婷国产综合久久蝌蚪 | 天天激情综合 | 瑟瑟综合 | 精品国产aⅴ一区二区三区东京热 | 天堂av在线网 | 日本福利视频导航 | 久久婷婷伊人 | 欧美黄色片 | 青娱乐av | 国产欧美一区二区三区视频在线观看 | 亚洲高清无码久久 | 国产欧美日 | 欧美日韩成人精品 | 极品人妻videosss人妻 | 厕拍极品 | 精品一区二区在线观看 | 在线电影一区二区 | 免费二区 | 无码人妻丰满熟妇区毛片蜜桃精品 | 国产区精品在线观看 | 日本乱码一区二区 | 欧美一级片在线免费观看 | 成在线人免费视频 | 久久发布国产伦子伦精品 | 男女调教视频 | 欧美不卡二区 | 天堂а在线中文在线新版 | 香蕉视频一区二区三区 | 欧美成人综合一区 | 人人妻人人澡人人爽 | 亚洲第六页 | 人妻无码一区二区三区久久99 | 亚洲精品h | 欧美三p | 免费在线观看一区二区三区 | 国产69精品一区二区 | 91宅男 | 无码人妻精品一区二区三区9厂 | 青草青草久热 | 久久综合久久88 | 欧美大片免费观看 | 李宗瑞91在线正在播放 | 97超视频 | 中国女人高潮hd | 黄色av网站免费在线观看 | 日韩区欧美区 | 国产成人一区二区三区小说 | 一级免费a | 精品黄色一级片 | 色老头综合网 | 中国成人毛片 | www.com在线观看 | 精品国产一区二区三区久久狼黑人 | 日婷婷| 变态另类ts人妖一区二区 | 亚洲a在线观看 | 对白超刺激精彩粗话av |