1.文件处理
使用os模块
Python3的系统标准库pathlib模块的 Path 对路径的操作会更简单
在pathlib里一切都是面向对象的,只需要调用指定的方法就可以了
2.时间格式处理和进制
二进制 八进制 十进制 十六进制
3.csv文件的读取
代码示例
#!/usr/bin/env python
# -*-coding:utf-8-*-
# @file csv_input.py
from pathlib import Path
import csv
import datetime
if __name__ == "__main__":
input_file = r'F:\PythonProject\Python\data\input\TestData.txt'
# 文件验证工作
p = Path(input_file)
print("存在", p.exists(), "是文件", p.is_file())
# print(p.owner(), p.group()) Path.owner() is unsupported on this system
stat_info = p.stat()
print(stat_info)
# bin() 二进制0b、八进制0o和十六进制0x
print(' Size:', stat_info.st_size)
print(' Permissions:', hex(stat_info.st_mode))
print(' Owner:', oct(stat_info.st_uid))
print(' Device:', bin(stat_info.st_dev))
print("时间戳到时间 通常该数值会被限制在 1970 至 2038 年之间")
base_f = datetime.datetime.utcfromtimestamp(stat_info.st_ctime)
print(type(base_f))
# strptime(date_string, format) 将string 变为格式format 的 datetime
# strftime # Formatting a datetime 返回的是string
print(base_f.strftime("%A, %d. %B %Y %I:%M%p"))
print(base_f.strftime("%Y/%m/%d %H:%M:%S"))
print(' Create:', datetime.datetime.fromtimestamp(stat_info.st_ctime))
print(' Last Modified Time:', datetime.datetime.fromtimestamp(stat_info.st_mtime))
print(' Last Accessed Time:', datetime.datetime.fromtimestamp(stat_info.st_atime))
# 文件读取操作
with open(input_file, mode='r', encoding='utf-8') as f:
f_csv = csv.reader(f, delimiter='\t')
headers = next(f_csv)
print(headers)
# csv产生的数据都是字符串类型的,它不会做任何其他类型的转换
# 数据类型转换 数据共有4列
col_types = [str, float, int, str]
for row in f_csv:
# 数据类型转换 本语句涉及 for in 的循环 zip函数的使用 ,生成器 以及tuple() 将生成器转换为元组
# [表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]
# 圆括号-生成器表达式 ()
# tuple() 元组 其中生成器对象传入到list、set、dict等函数中作为构造参数
row = tuple(data_convert_type(data_value) for data_convert_type, data_value in zip(col_types, row))
print(row)
参考 :
Python之pathlib模块的使用 https://www.cnblogs.com/ygbh/articles/12762285.html
datetime --- 基本的日期和时间类型 https://docs.python.org/zh-cn/3/library/datetime.html