python文件遍历及时区转换

本文介绍了如何使用Python进行文件遍历,并展示了在不同时区之间进行时间转换的示例,包括遍历目录获取所有文件及进行时区转换的实践操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python文件遍历及时区转换
实例1: 写一个小程序,用来遍历一个目录中所有的文件
import os
def traverse(root):
    list_dirs = os.walk(root)
    for root,dirs,files in list_dirs:
        for d in dirs:
            print(os.path.join(root,d))
        for f in files:
            print(os.path.join(root,f))
#第二种:使用os.listdir:
def traverse1(root):
    for lists in os.listdir(root): 
        path = os.path.join(root, lists) 
        print(path) 
        if os.path.isdir(path): 
            traverse1(path) 
#第二种:使用os.listdir格式化输出:
def traverse2(root, level=1): 
    if level==1: print(root) 
    for lists in os.listdir(root): 
        path = os.path.join(root, lists) 
        print( '│'*(level-1)+'│--'+lists) 
        if os.path.isdir(path): 
            traverse2(path, level+1)           
traverse('G:\\test') 
print( '=======================================')
traverse1('G:\\test')
print( '=======================================')
traverse2('G:\\test') 

输出结果:

==
G:\test\a
G:\test\a\b
G:\test\a\a.txt
G:\test\a\b.txt
G:\test\a\c.txt
G:\test\a\d.txt
G:\test\a\b\a.txt
G:\test\a\b\b.txt
G:\test\a\b\c.txt
=======================================
G:\test\a
G:\test\a\a.txt
G:\test\a\b
G:\test\a\b\a.txt
G:\test\a\b\b.txt
G:\test\a\b\c.txt
G:\test\a\b.txt
G:\test\a\c.txt
G:\test\a\d.txt
=======================================
G:\test
│--a
││--a.txt
││--b
│││--a.txt
│││--b.txt
│││--c.txt
││--b.txt
││--c.txt
││--d.txt
实例2:自己写两个时区,在两个时区里面做时间转换
import datetime
import pytz
tz_utc = datetime.timezone.utc   #标准时区
print( 'str:',str(tz_utc))    #str: UTC
print( 'repr:',repr(tz_utc))    #repr: datetime.timezone.utc
print('-------------')
tz_china = datetime.timezone(datetime.timedelta(hours=8),'asia/Beijing')   #北京(+8区)
print( 'str:',str(tz_china))    #str: asia/Beijing
print( 'repr:',repr(tz_china))    #repr: datetime.timezone(datetime.timedelta(0, 28800), 'asia/Beijing')
print('-------------')
tz_America = datetime.timezone(datetime.timedelta(hours=-8),'America/Los_angeles')   #北京(+8区)
print( 'str:',str(tz_America))    #str: America/Los_angeles
print( 'repr:',repr(tz_America))    #repr: datetime.timezone(datetime.timedelta(-1, 57600), 'America/Los_angeles')
print('-------------')

cn_dt = datetime.datetime(2018,3,2,10,30,tzinfo=tz_china)
utc_dt = cn_dt.astimezone(datetime.timezone.utc)
print( 'str:',str(utc_dt))    #str: 2018-03-02 02:30:00+00:00
print( 'repr:',repr(utc_dt))    #repr: datetime.datetime(2018, 3, 2, 2, 30, tzinfo=datetime.timezone.utc)
print('-------------')
us_dt = cn_dt.astimezone(tz_America)
print( 'str:',str(us_dt))    #str: 2018-03-01 18:30:00-08:00
print( 'repr:',repr(us_dt))    #repr: datetime.datetime(2018, 3, 1, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600), 'America/Los_angeles'))

#第二种:库
tc = pytz.country_timezones('cn')
print( 'str:',str(tc))
print('repr:',repr(tc))
print('-------------')
tz = pytz.timezone('Asia/Shanghai')
print( 'str:',str(tz))
print('repr:',repr(tz))
print('-------------')
d = datetime.datetime(2009,2,21,23,18,5,tzinfo=tz)
print( 'str:',str(d))
print('repr:',repr(d))
print('-------------')
x = d.astimezone(pytz.utc)
print( 'str:',str(x))
print('repr:',repr(x))
print('-------------')
tt=datetime.datetime.now(tz)
print( 'str:',str(tt))
print('repr:',repr(tt))

输出结果:

str: UTC
repr: datetime.timezone.utc
-------------
str: asia/Beijing
repr: datetime.timezone(datetime.timedelta(0, 28800), 'asia/Beijing')
-------------
str: America/Los_angeles
repr: datetime.timezone(datetime.timedelta(-1, 57600), 'America/Los_angeles')
-------------
str: 2018-03-02 02:30:00+00:00
repr: datetime.datetime(2018, 3, 2, 2, 30, tzinfo=datetime.timezone.utc)
-------------
str: 2018-03-01 18:30:00-08:00
repr: datetime.datetime(2018, 3, 1, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600), 'America/Los_angeles'))
str: ['Asia/Shanghai', 'Asia/Urumqi']
repr: ['Asia/Shanghai', 'Asia/Urumqi']
-------------
str: Asia/Shanghai
repr: <DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>
-------------
str: 2009-02-21 23:18:05+08:06
repr: datetime.datetime(2009, 2, 21, 23, 18, 5, tzinfo=<DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>)
-------------
str: 2009-02-21 15:12:05+00:00
repr: datetime.datetime(2009, 2, 21, 15, 12, 5, tzinfo=<UTC>)
-------------
str: 2018-03-02 11:28:01.274820+08:00
repr: datetime.datetime(2018, 3, 2, 11, 28, 1, 274820, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)
>>> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泸州月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值