1. 程式人生 > >python3---對windows系統的資料夾與檔案屬性為隱藏、只讀等。os.chdir、os.getcwd、win32api、win32con

python3---對windows系統的資料夾與檔案屬性為隱藏、只讀等。os.chdir、os.getcwd、win32api、win32con

確認是否安裝成功,如下:
C:\Python34>python
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import win32api
>>> import win32con
>>> import win32file
>>> 
windows的資料夾與檔案屬性值資訊:
FILE_ATTRIBUTE_READONLY
= 1 (0x1) # 屬性-隱藏 FILE_ATTRIBUTE_HIDDEN = 2 (0x2) # 屬性-隱藏 FILE_ATTRIBUTE_SYSTEM = 4 (0x4) # 屬性-系統檔案 FILE_ATTRIBUTE_DIRECTORY = 16 (0x10) FILE_ATTRIBUTE_ARCHIVE = 32 (0x20) FILE_ATTRIBUTE_NORMAL = 128 (0x80) # 屬性-正常 FILE_ATTRIBUTE_TEMPORARY = 256 (0x100) FILE_ATTRIBUTE_SPARSE_FILE = 512 (0x200) FILE_ATTRIBUTE_REPARSE_POINT
= 1024 (0x400) FILE_ATTRIBUTE_COMPRESSED = 2048 (0x800) FILE_ATTRIBUTE_OFFLINE = 4096 (0x1000) FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192 (0x2000) FILE_ATTRIBUTE_ENCRYPTED = 16384 (0x4000)
測試的資料夾與檔案:
C:\test>dir
 驅動器 C 中的卷沒有標籤。
 卷的序列號是 1C41-4CCA

 C:\test 的目錄

2018-06-13  10:50    <DIR>          .
2018-06-13  10:50    <DIR
> .. 2017-12-14 11:24 56,570 11.PNG 2017-12-14 14:17 1,498 3.js 2018-06-13 10:50 <DIR> work2 2 個檔案 58,068 位元組 3 個目錄 33,063,419,904 可用位元組 C:\test> C:\test>cd work C:\test\work>dir 驅動器 C 中的卷沒有標籤。 卷的序列號是 1C41-4CCA C:\test\work 的目錄 2016-08-30 14:30 7,419 20160830.wvs 2017-02-15 10:37 30,208 555.xls 2016-05-26 15:45 169,984 bookmarks4.html 2009-07-14 13:32 780,831 orderDetail_export_2017-02-150.png 2017-07-20 20:27 816 orderExchangeDetail.zip 2018-06-11 09:27 0 see holl.wmv 2016-09-08 12:11 159 Test.java 2016-09-08 11:56 0 test.txt 2018-06-11 09:27 0 大大.rvmb 2018-06-11 09:28 0 蜂鳥.mp4 10 個檔案 989,417 位元組 0 個目錄 33,063,419,904 可用位元組 C:\test\work>
1、在python3.4進行除錯windows下目標目錄的檔案隱藏屬性與正常屬性
C:\Python34>python
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import win32api
>>> import win32con
>>> import win32file
>>> import os
>>> os.getcwd()
'C:\\Python34'
>>> os.chdir("C:/test/work/")#切換目錄
>>> os.getcwd()
'C:\\test\\work'
>>> attr = win32api.GetFileAttributes("555.xls")#獲取屬性值(正常)
>>> print(attr)
32
>>> attr1 = win32api.GetFileAttributes("1231.jpg")
>>> print(attr1)
32
>>>#隱藏該目錄下的檔案
>>> win32api.SetFileAttributes('1231.jpg',win32con.FILE_ATTRIBUTE_HIDDEN)#設定隱藏屬性值
>>> 
>>> os.chdir("C:/test/work/")
>>> os.getcwd()
'C:\\test\\work'
>>> attr3 = win32api.GetFileAttributes("1231.jpg")
>>> print(attr3)
2
>>> 
#恢復檔案1231.jpg的正常屬性
>>> 
>>> os.chdir("C:/test/work")
>>> os.getcwd()
'C:\\test\\work'
>>> win32api.SetFileAttributes('1231.jpg',win32con.FILE_ATTRIBUTE_ARCHIVE)
>>> attr6 = win32api.GetFileAttributes("1231.jpg")
>>> print(attr6)
32
>>> 
2、windows系統下設定目標目錄的資料夾隱藏與正常屬性
>>> win32api.SetFileAttributes('work',win32con.FILE_ATTRIBUTE_HIDDEN)
>>> 
>>> os.chdir("C:/test")
>>> os.getcwd()
'C:\\test'
>>> attr4 = win32api.GetFileAttributes("work")
>>> print(attr4)
18
>>> 
#資料夾work恢復正常屬性
>>> os.getcwd()
'C:\\test'
>>> win32api.SetFileAttributes('work',win32con.FILE_ATTRIBUTE_ARCHIVE)
>>> attr5 = win32api.GetFileAttributes("work")
>>> print(attr5)
48
>>> 
3、windows系統下判斷檔案是否隱藏:
參考:https://zhidao.baidu.com/question/136250336664582445.html
https://www.jb51.net/article/48312.htm

>>> os.getcwd()
'C:\\test\\work'
>>> attr7 = win32api.GetFileAttributes("1231.jpg")#未隱藏
>>> print(attr7)
32
>>> win32api.SetFileAttributes('1231.jpg',win32con.FILE_ATTRIBUTE_HIDDEN)#設定為隱藏
>>> attr8 = win32api.GetFileAttributes("1231.jpg")
>>> print(attr8)
2
>>> if attr8 & win32con.FILE_ATTRIBUTE_HIDDEN:#判斷是否隱藏
...     print("True")
... else:
...     print("False")
... 
True
>>>