開發過程中一些很小但比較重要的問題

2021-10-01 10:03:54 字數 2828 閱讀 9644

這兩天用到配置檔案,我把一些常用的資料放到了config.ini檔案裡,以前都是把路徑寫死的,但是有個大問題,在windows和linux裡面的路徑表達方式也不一樣,這樣容易造成不相容的問題經過查詢資料,發現了乙個很好的解決方法,一般路徑路徑問題都可以這樣來解決:

比如,我的配置檔案路徑是這樣的:

- 根目錄

+ 其他資料夾

+ a資料夾

+ b資料夾

config.ini

c.py

我想在c.py裡引用config.ini裡面的引數,可以這樣寫:

# 這裡用到python的configparser模組  後面有說明

from configparser import configparser

import os

config = configparser(

)config.read(os.path.join(os.getcwd(),

'b資料夾', 'config.ini'

), encoding=

'utf-8-sig'

)

一般常用到的路徑讀取方式

"""

os.path.abspath(path) 返回path規範化的絕對路徑。

os.path.split(path) 將path分割成目錄和檔名二元組返回。

os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第乙個元素。

os.path.basename(path) 返回path最後的檔名。如何path以/或\結尾,那麼就會返回空值。即os.path.split(path)的第二個元素。

os.path.commonprefix(list) 返回list中,所有path共有的最長的路徑

os.path.exists(path) 如果path存在,返回true;如果path不存在,返回false。

os.path.isabs(path) 如果path是絕對路徑,返回true。

os.path.isfile(path) 如果path是乙個存在的檔案,返回true。否則返回false。

os.path.isdir(path) 如果path是乙個存在的目錄,則返回true。否則返回false。

os.path.join(path1[, path2[, ...]]) 將多個路徑組合後返回,第乙個絕對路徑之前的引數將被忽略。

os.path.normcase(path) 在linux和mac平台上,該函式會原樣返回path,在windows平台上會將路徑中所有字元轉換為小寫,並將所有斜槓轉換為飯斜槓。

os.path.normpath(path) 規範化路徑。

"""

ini配置檔案的好處在於可以在配置檔案中新增多個作用相同引數不同的資料,切換也特別方便,比如我想從乙個資料庫切到另乙個資料庫,只需要修改乙個引數就可以了。配置檔案也可以新增郵箱、url、設定等等一些常用的資料。

前面已經提到,可以用configparser來讀取配置檔案

這裡一些常用的操作:

"""

1.讀取

read(filename) 直接讀取ini檔案內容

sections() 得到所有的section,並以列表的形式返回

options(section) 得到該section的所有option

items(section) 得到該section的所有鍵值對

get(section,option) 得到section中option的值,返回為string型別

getint(section,option) 得到section中option的值,返回為int型別

(相應的還有getboolean()和getfloat() 函式)

2.寫入

add_section(section) 新增乙個新的section

set( section, option, value) 對section中的option進行設定

config.write() 寫入

"""

讀取的例子前面已經有,這裡只提一下寫入的方法:

# 第一種寫法

config[

"a"]

=# 第二種寫法

config[

'b']

=config[

'b']

['key4']=

'val4'

# 第三種寫法

config[

'c']

=topsecret = config[

'c']

topsecret[

'key5']=

'val5'

# mutates the parser

topsecret[

'key6']=

'val6'

# same here

# 寫入字尾為.ini的檔案 (如果是追加,請用'a'模式寫入)

with

open

('config.ini'

,'w'

)as f:

config.write(f)

執行結果:

[a]

key1 = val1

key2 = val2

key3 = val3

[b]key4 = val4

[c]key5 = val5

key6 = val6

軟體在開發過程中一些問題

軟體產品不同於其他的產品,軟甲開發幾乎就是純智力的一種行為,智力行為又是思想行為,往往會帶有很強的主觀意願。但是同時也會有一些相應的規範來約束。即使在開發過程中遵守規範,但是還是會遇到一些問題 軟體開發進度和成本難以控制。由於評估軟體的開發是基於以前的經驗和統計數值,因而專案的進度和成本難以控制,這...

一些比較重要的函式

void start void launchprojectile 協同程式 同步執行 執行結果 starting 0.0 和 before waitandprint finishes 0.0 兩句,2秒後列印 waitandprint 2.0 waitandprint在start函式內執行,可以視同...

關於github一些比較重要的命令

奇文共欣賞 這篇部落格還是講的不錯地 1.建立乙個新的repository 先在github上建立並寫好相關名字,描述。cd hello world 到hello world目錄 git init 初始化 git add 把所有檔案加入到索引 不想把所有檔案加入,可以用gitignore或add 具...