1. python有哪些模塊
Python是一門非常高級的編程語言,內置了許多標准模塊,比如:sys、os、datetime等。
os模塊
os.getcwd() # 獲取當前工作目錄,即當前python腳本工作的目錄路徑
os.chdir("dirname") # 改變當前腳本工作目錄;相當於shell下cd
os.curdir # 返回當前目錄: ('.')
os.pardir # 獲取當前目錄的父目錄字元串名:('..')
os.makedirs('dirname1/dirname2') # 可生成多層遞歸目錄
os.removedirs('dirname1') # 若目錄為空,則刪除,並遞歸到上一級目錄,如若也為空,則刪除,依此類推
os.mkdir('dirname') # 生成單級目錄;相當於shell中mkdir dirname
os.rmdir('dirname') # # 刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當於shell中rmdir dirname
os.listdir('dirname') # 列出指定目錄下的所有文件和子目錄,包括隱藏文件,並以列表方式列印
os.remove() # 刪除一個文件
os.rename("oldname","newname") # 重命名文件/目錄
os.stat('path/filename') # 獲取文件/目錄信息
os.sep # 輸出操作系統特定的路徑分隔符,win下為"\",linux下為"/"
os.linesep # 輸出當前平台使用的行終止符,win下為" ",Linux下為" "
os.pathsep # 輸出用於分割文件路徑的字元串 win下為;,Linux下為:
os.name # 輸出字元串指示當前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") # 運行shell命令,直接顯示
os.environ # 獲取系統環境變數
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.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.getatime(path) # 返回path所指向的文件或者目錄的最後訪問時間
os.path.getmtime(path) # 返回path所指向的文件或者目錄的最後修改時間
os.path.getsize(path) # 返回path的大小
sys模塊
sys.argv # 命令行參數List,第一個元素是程序本身路徑
sys.exit(n) # 退出程序,正常退出時exit(0)
sys.version # 獲取Python解釋程序的版本信息
sys.maxint # 最大的Int值
sys.path # 返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變數的值
sys.platform # 返回操作系統平台名稱
datetime模塊
datetime.today()返回一個表示當前本期日期時間的datetime對象
datetime.now([tz])返回指定時區日期時間的datetime對象,如果不指定tz參數則結果同上
datetime.utcnow()返回當前utc日期時間的datetime對象
datetime.fromtimestamp(timestamp[, tz])根據指定的時間戳創建一個datetime對象
datetime.utcfromtimestamp(timestamp)根據指定的時間戳創建一個datetime對象
datetime.strptime(date_str, format)將時間字元串轉換為datetime對象
2. linux c strptime函數
char *strptime(const char *restrict buf, const char *restrict format, struct tm *restrict tm);
buf指向一個字元串格式的時間,函數將這個時間用format表示的格式解析,存放到tm中去
例子:
strptime("6 Dec 2001 12:33:45", "%d %b %Y %H:%M:%S", &tm);
返回值:
解析正確返回最後解析字元的下一個字元的地址,失敗返回NULL
參考
http://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html
看你的寫法,是你理解錯了.
tm中的年是時間與格林尼治時間的差表示的
3. linux如何比對兩個時間差
#include <stdio.h>
#include <time.h>
int
main ()
{
struct tm tm, tm2;
char buf[255];
time_t t1, t2;
strptime ("Thu Feb 5 13:12:18 EST 2009", "%a %b %d %H:%M:%S EST %Y", &tm);
strptime ("Fri Feb 6 13:11:18 EST 2009", "%a %b %d %H:%M:%S EST %Y", &tm2);
t1 = mktime(&tm);
t2 = mktime(&tm2);
printf("TIME: %ld, %ld, %ld\n", t2, t1, t2-t1);
return 0;
}
4. python 濡備綍灝嗗瓧絎︿覆杞鍖栦負datetime.date
姣旇緝鐪佷簨鐨勫姙娉曟槸鐢╰ime妯″潡鐨剆trptime鏂規硶鏉ヨВ鏋愭棩鏈熷瓧絎︿覆鎴愪負鏃墮棿瀵硅薄錛岀劧鍚庡啀鎶婂勾鏈堟棩閮ㄥ垎鎻愬彇鍑烘潵錛屾渶鍚庣敓鎴恉atetime.date瀵硅薄銆
#鏂規硶1,鐢╰ime妯″潡鐨剆trptime鏂規硶鏉ヨВ鏋愭棩鏈熷瓧絎︿覆鎴愪負鏃墮棿瀵硅薄
importtime,datetime
date_str='2017-10-19'
fmt='%Y-%m-%d'
time_tuple=time.strptime(date_str,fmt)
year,month,day=time_tuple[:3]
a_date=datetime.date(year,month,day)
print(a_date,type(a_date))
#鏂規硶2,鐩存帴鎶婃棩鏈熷瓧絎︿覆鎷嗗垎杞鎹㈡垚騫/鏈/鏃瀵瑰簲鐨勬暣鏁
importdatetime
date_str='2017-10-19'
print(datetime.date(*map(int,date_str.split('-'))))
5. C語言中的常用的幾種系統時間結構體類型
在C語言涉及中經常需要定時觸發事件,涉及到獲取系統時間,其結構體類型有多種。Unix/Linux系統下有以下幾種時間結構:
1、time_t 類型:長整型,一般用來表示從1970-01-01 00:00:00時以來的秒數,精確度:秒;由函數time()獲取;
該類型定義在頭文件 /usr/include/sys/time.h 中:
#define _TIME_T
typedef long time_t;
#endif
函數定義:time_t time(time_t* lpt);
如:time_t time = time(NULL);
2、struct timeb 結構:它有兩個主要成員,一個是秒,另一個是毫秒;精確度:毫秒(10E-3秒);
由函數ftime()獲取struct timeb結構的時間;其定義如下:
struct timeb
{
time_t time;
unsigned short millitm;
short timezone;
short dstflag;
};
#include <sys/timeb.h>
int ftime(struct timeb* tp);
調用成功返回0;調用失敗返回-1;
3、struct timeval 結構,它有兩個成員;一個是秒,另一個表示微秒,精確度:微秒(10E-6);
由函數gettime0fday()獲取;
struct timeval結構定義為:
struct timeval
{
long tv_sec;
long tv_usec;
}
讀取struct timeval結構數據的函數說明:
#include <sys/time.h>
int gettimeofday(struct timeval* tv,struct timezone* tz);
該函數會提取系統當前時間,並把時間分為秒和微秒兩部分填充到結構struct timeval中;同時把當地的時區信
息填充到結構struct timezone中;
返回值:成功則返回0,失敗返回-1,錯誤代碼存於errno。附加說明EFAULT指針tv和tz所指的內存空間超出存
取許可權。
struct timezone結構的定義為:
struct timezone
{
int tz_minuteswest;
int tz_dsttime;
}
上述兩個結構都定義在/usr/include/sys/time.h。tz_dsttime 所代表的狀態如下
DST_NONE
DST_USA
DST_AUST
DST_WET
DST_MET
DST_EET
DST_CAN
DST_GB
DST_RUM
DST_TUR
DST_AUSTALT
4、struct timespec 結構:它是POSIX.4標準定義的一個時間結構,精確度:納秒(10E-9秒);
由函數gethrestime()或gethrestime_lasttick()獲取當前系統struct timespec結構的時間;其定義如下:
struct timespec
{
time_t tv_sec;
long tv_nsec;
};
typedef struct timespec timespec_t;
該結構定義在頭頭文件 /usr/include/sys/time_impl.h 中;
extern void gethrestime(timespec_t*);
extern void gethrestime_lasttick(timespec_t*);
5、clock_t 類型:由函數clock()獲取;
#include <time.h>
clock_t clock(void);
該函數以微秒的方式返回CPU的時間;
類型 clock_t 定義在頭文件/usr/include/sys/types.h中:
#ifndef _CLOCK_T
#define _CLOCK_T
typedef long clock_t;
#endif
6、struct tm 結構:由函數gmtime()解析time_t得到
struct tm*gmtime(const time_t*timep);
函數說明:gmtime()將參數timep 所指的time_t 結構中的信息轉換成真實世界所使用的時間日期表示方法,然後
將結果由結構tm返回。
結構tm的定義為
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
int tm_sec 代表目前秒數,正常范圍為0-59,但允許至61秒
int tm_min 代表目前分數,范圍0-59
int tm_hour 從午夜算起的時數,范圍為0-23
int tm_mday 目前月份的日數,范圍01-31
int tm_mon 代表目前月份,從一月算起,范圍從0-11
int tm_year 從1900 年算起至今的年數
int tm_wday 一星期的日數,從星期一算起,范圍為0-6
int tm_yday 從今年1月1日算起至今的天數,范圍為0-365
int tm_isdst 日光節約時間的旗標
此函數返回的時間日期未經時區轉換,而是UTC時間。
返回值:返回結構tm代表目前UTC 時間
7、Unix對時間單位的定義:
#define SEC 1 // 秒
#define MILLISEC 1000 // 毫秒
#define MICROSEC 1000000 // 微秒
#define NANOSEC 1000000000 // 納秒
8、時間格式化函數:
size_t strftime(char *str,size_t max,char *fmt,struct tm *tp); strftime有點像sprintf,其格式由fmt來指定。
%a : 本第幾天名稱,縮寫
%A : 本第幾天名稱,全稱
%b : 月份名稱,縮寫
%B : 月份名稱,全稱
%c : 與ctime/asctime格式相同
%d : 本月第幾日名稱,由零算起
%H : 當天第幾個小時,24小時制,由零算起
%I : 當天第幾個小時,12小時制,由零算起
%j : 當年第幾天,由零算起
%m : 當年第幾月,由零算起
%M : 該小時的第幾分,由零算起
%p : AM或PM
%S : 該分鍾的第幾秒,由零算起
%U : 當年第幾,由第一個日開始計算
%W : 當年第幾,由第一個一開始計算
%w : 當第幾日,由零算起
%x : 當地日期
%X : 當地時間
%y : 兩位數的年份
%Y : 四位數的年份
%Z : 時區名稱的縮寫
%% : %符號
char * strptime(char *s,char *fmt,struct tm *tp); 如同scanf一樣,解譯字串成為tm格式
%h : 與%b及%B同
%c : 讀取%x及%X格式
%C : 讀取%C格式
%e : 與%d同
%D : 讀取%m/%d/%y格式
%k : 與%H同
%l : 與%I同
%r : 讀取"%I:%M:%S %p"格式
%R : 讀取"%H:%M"格式
%T : 讀取"%H:%M:%S"格式
%y : 讀取兩位數年份
%Y : 讀取四位數年份
希望可以幫到你,謝謝!