පයිතන් හි ගොනු සෑදීම සහ වෙනස් කිරීමේ දිනය / වේලාවන් ලබා ගන්නේ කෙසේද?


965

මා සතුව ස්ක්‍රිප්ට් එකක් ඇත, එය ගොනු සෑදීම සහ වෙනස් කිරීමේ දිනයන් මත පදනම්ව යම් යම් දේ කිරීමට අවශ්‍ය නමුත් ලිනක්ස් සහ වින්ඩෝස් මත ධාවනය කළ යුතුය.

පයිතන් හි ගොනු සෑදීම සහ වෙනස් කිරීම ලබා ගැනීමට ඇති හොඳම හරස් වේදිකා ක්‍රමය කුමක්ද?date/times


58
හරස් වේදිකා ආකාරයෙන් ඔබට ගොනු සෑදීමේ වේලාව ලබා ගත නොහැක. බලන්න docs.python.org/library/os.path.html#os.path.getctime
Glyph

Answers:


658

හරස් වේදිකා ආකාරයෙන් යම් ආකාරයක වෙනස් කිරීමේ දිනයක් ලබා ගැනීම පහසුය - අමතන්න , එවිට ගොනුව අවසන් වරට වෙනස් කළ විට ඔබට යුනික්ස් කාලරාමුව ලැබෙනු ඇත .os.path.getmtime(path)path

අනෙක් අතට, ගොනු නිර්මාණය කිරීමේ දිනයන් ලබා ගැනීම විචක්ෂණශීලී හා වේදිකාව මත රඳා පවතින අතර විශාල මෙහෙයුම් පද්ධති තුන අතර පවා වෙනස් වේ:

මේ සියල්ල එකට ගත් විට, හරස් වේදිකා කේතය මේ වගේ දෙයක් විය යුතුයි ...

import os
import platform

def creation_date(path_to_file):
    """
    Try to get the date that a file was created, falling back to when it was
    last modified if that isn't possible.
    See http://stackoverflow.com/a/39501288/1709587 for explanation.
    """
    if platform.system() == 'Windows':
        return os.path.getctime(path_to_file)
    else:
        stat = os.stat(path_to_file)
        try:
            return stat.st_birthtime
        except AttributeError:
            # We're probably on Linux. No easy way to get creation dates here,
            # so we'll settle for when its content was last modified.
            return stat.st_mtime

9
මම මෙය එකට විසි කිරීමට මගේ උපරිමය කර ඇත්තෙමි (සහ ක්‍රියාවලිය සඳහා පැය කිහිපයක් ගත කළෙමි), මීට පෙර මෙහි දී ඇති පිළිතුරු වලට වඩා එය අවම වශයෙන් නිවැරදි බව මට විශ්වාසයි , නමුත් මෙය ඉතා අසීරු මාතෘකාවක් වන අතර මම ' d මිනිසුන්ට ලබා දිය හැකි නිවැරදි කිරීම්, පැහැදිලි කිරීම් හෝ වෙනත් ආදානයන් අගය කරන්න. විශේෂයෙන්, ext4ලිනක්ස් යටතේ ඇති ඩ්‍රයිව් වල මෙම දත්ත වලට ප්‍රවේශ වීමේ ක්‍රමයක් ගොඩනඟා ගැනීමට මම කැමතියි, වින්ඩෝස් විසින් ලියන ලද ලිපිගොනු ලිනක්ස් කියවන විට කුමක් සිදුවේදැයි ඉගෙන ගැනීමට මම කැමතියි st_ctime.
මාර්ක් අමරි

27
අවංකවම, ගොනු සෑදීමේ කාලය සාමාන්‍යයෙන් තරමක් නිෂ් .ල ය. ලිවීම සඳහා දැනට පවතින ගොනුවක් විවෘත කළ විට "w", එය ප්‍රතිස්ථාපනය නොකරයි, එය පවතින ගොනුව විවෘත කර එය කපා දමයි. ලිපිගොනු අන්තර්ගතය එය නිර්මාණය කිරීමේදී ඇති කිසිවක් සමඟ සම්පුර්ණයෙන්ම සම්බන්ධ නොවූවත්, වර්තමාන අනුවාදයට පෙර ගොනුව "නිර්මාණය කරන ලද" බව ඔබට තවමත් කියනු ඇත. අනෙක් අතට, පරමාණුක ප්‍රතිස්ථාපනය මත භාවිතා කරන සංස්කාරකවරුන් (මුල් ගොනුව නව ප්‍රගතියේ තාවකාලික ගොනුව මගින් ප්‍රතිස්ථාපනය වේ) ඔබ එක් අක්‍ෂරයක් මකා දැමුවද, වඩාත් මෑතදී නිර්මාණය කිරීමේ දිනයක් පෙන්වනු ඇත. වෙනස් කිරීමේ වේලාව භාවිතා කරන්න, මැවීමේ වේලාව සඳහා අඹරන්න එපා.
ෂැඩෝ රේන්ජර්

4
වසර ගණනාවකට පසු, මම අවසානයේ ගොනු සෑදීමේ කාලය සඳහා භාවිතයක් සොයා ගතිමි! සමහර නාමාවලිවල ගොනු නම් කිරීමේ සම්මුතියක් පරීක්ෂා කිරීම සඳහා මම කේතයක් ලියමි, එබැවින් පළමුව මට අවශ්‍ය වන්නේ සමුළුව ආරම්භ කිරීමෙන් පසුව නම් කරන ලද ලිපිගොනු සලකා බැලීමට ය. සම්පූර්ණ අන්තර්ගතය (mtime) ප්‍රතිස්ථාපනය කිරීම අදාල නොවේ: එය දැනටමත් එහි තිබුනේ නම් එය විශාල වශයෙන් පිරී ඇත.
ස්ටීව් ජෙසොප්

2
හායි මාර්ක්. මම සරල කිරීමක් යෝජනා කරනවා. ලිනක්ස් හි, නැවත පැමිණීම stat.st_ctimeවඩාත් අදාළ වන්නේ, බොහෝ අවස්ථාවන්හීදී, අවසාන පාර-දත්ත වෙනස් වීමේ කාලය නිර්මාණ කාලය විය හැකි බැවිනි (අවම වශයෙන් ctimeසැබෑ නිර්මාණ කාලයට වඩා සමීප වේ mtime). එමනිසා, ඔබට ඔබේ ස්නිපටය ආදේශ කළ හැකිය stat = os.stat(path_to_file); try: return stat.st_birthtime; except AttributeError: return stat.st_ctime. ඔයා සිතන්නේ කුමක් ද? චියර්ස්
ඔලිබ්‍රේ

5
@olibre "අවම වශයෙන් ctime සැබෑ මැවීමේ වේලාවට mtime ට වඩා සමීප වේ" - නැත එය නොවේ; මෙය මා කිහිප වතාවක්ම දැක ඇති නමුත් එය සම්පූර්ණයෙන්ම අසත්‍යයකි. ඔබගේ ඉනෝඩයේ ඇති අගයන් සමඟ ඔබ අතින් අවුල් කර නොමැති නම්, ctimeසෑම විටම සමාන හෝ පසුව විය යුතුය mtime, මන්ද mtimeවෙනසක් වෙනසක් ඇති කරයි ctime(මක්නිසාද යත් mtimeඑය "පාර-දත්ත" ලෙස සලකනු ලැබේ). මෙය නිදර්ශනය කිරීම සඳහා මම උදාහරණ කේතයක් සපයන stackoverflow.com/a/39521489/1709587 බලන්න .
මාර්ක් අමරි

685

ඔබට තේරීම් කිහිපයක් තිබේ. එකක් සඳහා, ඔබට os.path.getmtimeසහ os.path.getctimeකාර්යයන් භාවිතා කළ හැකිය :

import os.path, time
print("last modified: %s" % time.ctime(os.path.getmtime(file)))
print("created: %s" % time.ctime(os.path.getctime(file)))

ඔබේ අනෙක් විකල්පය භාවිතා කිරීම os.stat:

import os, time
(mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) = os.stat(file)
print("last modified: %s" % time.ctime(mtime))

සටහන : ctime()නැත නැත * nix පද්ධති මත නිර්මාණය කාලය යොමු, ඒ වෙනුවට, පසුගිය කාලය inode දත්ත වෙනස් විය. (සිත්ගන්නාසුලු බ්ලොග් සටහනකට සබැඳියක් ලබා දීමෙන් කොජිරෝට එම කරුණ වඩාත් පැහැදිලිව දැක්වීම ගැන ස්තූතියි)


170
යමෙකුට මග හැරුනු විට @ ග්ලයිෆ්ගේ ප්‍රශ්නයට කළ ප්‍රකාශය, ctime යන්නෙන් අදහස් කරන්නේ POSIX පද්ධති වල නිර්මාණ කාලය නොවේ . පසුගිය වසර තුන තුළ කොපමණ දෙනෙක් මෙම තනතුර අතහැර දමා දෝෂ කේත ලිවීමට ගොස් ඇත්දැයි මම කල්පනා කරමි.
kojiro

16
පළමු උදාහරණය මඟින් ඔබට ලබා දෙන්නේ දිවා කාලය හෝ අංකයක් නොවන බව මතක තබා ගන්න.
ගක්

1
මෙම බ්ලොග් පෝස්ටය @kojiro ඔබ යුනික්ස් මත ගොනුවේ බව තවත් පැහැදිලි විය හැකි සම්බන්ධ තියෙනවා ctimeද සෑම විටම යාවත්කාලීන ලක්වෙයි mtimeකරන්නේ (සිට mtime"පාර-දත්ත" වන), සහ ඒ නිසා ctimeසෑම විටම සාමාන්යයෙන් සමාන වේ ඉදිරියට හෝ එම mtime. ප්රතිකාර ctimeලෙස "නිර්මාණය" කාලය අනුව සියලු කිසිදු තේරුමක්. -1!
මාර්ක් අමරි

ඔබගේ පළමු විකල්පය ගොනු සෑදීම සහ අවසන් වෙනස් කිරීම යන දෙකම සඳහා එකම ප්‍රති results ල ලබා දෙයි! Last modified: Fri Jan 31 11:08:13 2020සහ Created: Fri Jan 31 11:08:13 2020ලිනක්ස් උබුන්ටු 16.04 හි!
ෆෙරීඩ් අලිජානි

time.ctime(os.path.getmtime(file))ගොනුව පද්ධතිය විසින් හෝ පරිශීලකයා විසින් වෙනස් කර ඇත්ද යන්න මත පදනම්ව, නූල් වර්ග 2 ක් ආපසු ලබා දෙන බව මම සොයා ගතිමි . එය පද්ධතිය විසින් වෙනස් කර ඇත්නම්, නූලට මාසය සහ දිනය අතර අවකාශ 2 ක් ඇත. එයට හේතුව මම නොදනිමි
මැටියෝ ඇන්ටොලිනි

380

මේ සඳහා භාවිතා කළ හැකි හොඳම කාර්යය වන්නේ os.path.getmtime () ය . අභ්‍යන්තරව, මෙය භාවිතා කරයි os.stat(filename).st_mtime.

දිවා කාල මොඩියුලය හොඳම හැසිරවීමේ කාලරාමු වේ, එබැවින් ඔබට වෙනස් කිරීමේ දිනය datetimeමෙවැනි වස්තුවක් ලෙස ලබා ගත හැකිය :

import os
import datetime
def modification_date(filename):
    t = os.path.getmtime(filename)
    return datetime.datetime.fromtimestamp(t)

භාවිත උදාහරණය:

>>> d = modification_date('/var/log/syslog')
>>> print d
2009-10-06 10:50:01
>>> print repr(d)
datetime.datetime(2009, 10, 6, 10, 50, 1)

1
මෙම පිළිතුර ද ටිකක් වැරදිය. getmtimeයනු යුනික්ස් හි ඇති ආසන්නතම දෙයයි (නිර්මාණ දිනයන් ලබා ගත නොහැකි තැන), නමුත් නියත වශයෙන්ම එය වින්ඩෝස් හි භාවිතා කිරීමට හොඳම කාර්යය නොවේ ctime.
මාර්ක් අමරි

4
Ark මාක්ඇමරි - මෙම පිළිතුර පැහැදිලිවම වෙනස් කිරීමේ වේලාව ලෙස ලේබල් කර ඇත.
ArtOfWarfare

47

os.stat https://docs.python.org/2/library/stat.html#module-stat

සංස්කරණය කරන්න: නව කේතයෙන් ඔබ බොහෝ විට භාවිතා කළ යුත්තේ os.path.getmtime () (ස්තූතියි ක්‍රිස්ටියන් ඕඩාර්ඩ්)
නමුත් එය තත්පර තත්පරයකින් time_t හි පාවෙන ලක්ෂ්‍ය අගයක් ලබා දෙන බව සලකන්න (ඔබේ මෙහෙයුම් පද්ධතිය එයට සහය දක්වන්නේ නම්)


44
os.path.getmtime () මේ සඳහා සාදා ඇති අතර වඩාත් සරල ය.
ක්‍රිස්ටියන් ඕඩාර්ඩ්

6
මෙහි "නව කේතයේ" වගන්තිය ටිකක් නොමඟ යවන සුළුය. os.path.getmtime()පයිතන් 1.5.2 සිට ( පැරණි ලියකියවිලි බලන්න ), මගේ ළදරු දත් බොහොමයක් නැති වීමට පෙර සහ මෙම පිළිතුරේ මුල් පිටපත ලිවීමට දශකයකට පමණ පෙර නිකුත් කරන ලදි.
මාර්ක් අමරි

40

මෝඩ් වේලාව ලබා ගැනීමට ක්‍රම දෙකක් තිබේ, os.path.getmtime () හෝ os.stat (), නමුත් ctime විශ්වාසදායක හරස් වේදිකාවක් නොවේ (පහත බලන්න).

os.path.getmtime ()

getmtime ( path ) මාර්ගය
අවසන් වරට වෙනස් කළ කාලය නැවත ලබා දෙන්න. ප්‍රතිලාභ අගය යනු යුගයේ සිට තත්පර ගණනක් ලබා දෙන අංකයකි (කාල මොඩියුලය බලන්න). ගොනුව නොපවතී නම් හෝ ප්‍රවේශ විය නොහැකි නම් os.error මතු කරන්න. 1.5.2 අනුවාදයේ නව. 2.3 අනුවාදයේ වෙනස් කර ඇත: os.stat_float_times () සත්‍ය නම්, ප්‍රති result ලය පාවෙන ලක්ෂ්‍ය අංකයකි.

os.stat ()

stat ( path ) දී ඇති මාර්ගයේ
stat () පද්ධති ඇමතුමක් සිදු කරන්න. ප්‍රතිලාභ අගය යනු සංඛ්‍යා ව්‍යුහයේ සාමාජිකයන්ට අනුරූප වන වස්තුවකි, එනම්: st_mode (ආරක්ෂණ බිටු), st_ino (ඉනෝඩ් අංකය), st_dev (උපාංගය), st_nlink (දෘ link සබැඳි ගණන), st_uid (හිමිකරුගේ පරිශීලක හැඳුනුම්පත) ), st_gid (අයිතිකරුගේ කණ්ඩායම් හැඳුනුම්පත), st_size (ගොනුවේ ප්‍රමාණය, බයිට් වලින්), st_atime (නවතම ප්‍රවේශයේ වේලාව ), st_mtime (නවතම අන්තර්ගත වෙනස් කිරීමේ කාලය), st_ctime (වේදිකාව මත රඳා පවතී; නවතම පාර-දත්ත වෙනස් වීමේ කාලය) යුනික්ස් මත හෝ වින්ඩෝස් හි නිර්මාණය කරන වේලාව) :

>>> import os
>>> statinfo = os.stat('somefile.txt')
>>> statinfo
(33188, 422511L, 769L, 1, 1032, 100, 926L, 1105022698,1105022732, 1105022732)
>>> statinfo.st_size
926L
>>> 

ඉහත උදාහරණයේ දී ඔබ පිළිවෙලින් mtime සහ ctime ලබා ගැනීම සඳහා statinfo.st_mtime හෝ statinfo.st_ctime භාවිතා කරනු ඇත.


17

පයිතන් 3.4 සහ ඊට ඉහළින්, ඔබට බොහෝ මොඩියුලය සඳහා ආවරණ ඇතුළත් වස්තු දිශානත පාත්ලිබ් මොඩියුල අතුරුමුහුණත භාවිතා කළ හැකිය . ගොනු සංඛ්‍යාලේඛන ලබා ගැනීම සඳහා උදාහරණයක් මෙන්න.

>>> import pathlib
>>> fname = pathlib.Path('test.py')
>>> assert fname.exists(), f'No such file: {fname}'  # check that the file exists
>>> print(fname.stat())
os.stat_result(st_mode=33206, st_ino=5066549581564298, st_dev=573948050, st_nlink=1, st_uid=0, st_gid=0, st_size=413, st_atime=1523480272, st_mtime=1539787740, st_ctime=1523480272)

os.stat_resultඅඩංගු දේ පිළිබඳ වැඩි විස්තර සඳහා , ප්‍රලේඛනය වෙත යොමු වන්න . ඔබට අවශ්‍ය වෙනස් කිරීමේ කාලය සඳහා fname.stat().st_mtime:

>>> import datetime
>>> mtime = datetime.datetime.fromtimestamp(fname.stat().st_mtime)
>>> print(mtime)
datetime.datetime(2018, 10, 17, 10, 49, 0, 249980)

ඔබට වින්ඩෝස් හි නිර්මාණ කාලය හෝ යුනික්ස් හි නවතම පාර-දත්ත වෙනස් කිරීම අවශ්‍ය නම්, ඔබ භාවිතා කරන්නේ fname.stat().st_ctime:

>>> ctime = datetime.datetime.fromtimestamp(fname.stat().st_ctime)
>>> print(ctime)
datetime.datetime(2018, 4, 11, 16, 57, 52, 151953)

මෙම ලිපියේ වඩාත් ප්‍රයෝජනවත් තොරතුරු සහ පාත්ලිබ් මොඩියුලය සඳහා උදාහරණ ඇත.


12
import os, time, datetime

file = "somefile.txt"
print(file)

print("Modified")
print(os.stat(file)[-2])
print(os.stat(file).st_mtime)
print(os.path.getmtime(file))

print()

print("Created")
print(os.stat(file)[-1])
print(os.stat(file).st_ctime)
print(os.path.getctime(file))

print()

modified = os.path.getmtime(file)
print("Date modified: "+time.ctime(modified))
print("Date modified:",datetime.datetime.fromtimestamp(modified))
year,month,day,hour,minute,second=time.localtime(modified)[:-3]
print("Date modified: %02d/%02d/%d %02d:%02d:%02d"%(day,month,year,hour,minute,second))

print()

created = os.path.getctime(file)
print("Date created: "+time.ctime(created))
print("Date created:",datetime.datetime.fromtimestamp(created))
year,month,day,hour,minute,second=time.localtime(created)[:-3]
print("Date created: %02d/%02d/%d %02d:%02d:%02d"%(day,month,year,hour,minute,second))

මුද්රණ

somefile.txt
Modified
1429613446
1429613446.0
1429613446.0

Created
1517491049
1517491049.28306
1517491049.28306

Date modified: Tue Apr 21 11:50:46 2015
Date modified: 2015-04-21 11:50:46
Date modified: 21/04/2015 11:50:46

Date created: Thu Feb  1 13:17:29 2018
Date created: 2018-02-01 13:17:29.283060
Date created: 01/02/2018 13:17:29

ඔබට ඒ ගැන විශ්වාසද? මම වින්ඩෝස් පමණක් භාවිතා කරන අතර මෙය නියත වශයෙන්ම ක්‍රියාත්මක වේ. මම මෙම පිටපත ලිව්වේ 2015 මුල් භාගයේදීය. මෙහි සිටින අනෙක් අයට වඩා එය පැහැදිලි, සෘජු, සම්පූර්ණ හා ස්වයං පැහැදිලි කිරීමක් බව මට පෙනේ. (i අලුත් යමක් විය හුදෙක් විගමනික ශ්රමිකයින් වෙනුවට මගේ පරණ පත්ර මෙතන බැලීමට තීරණය කිරීමට සිදු වන මෙයින් ... මෙම මාර්ගය වේ.)
මඩ වළ තියෙන පැත්ත පළාතකටවත්

1
ඔහ්, මම අදහස් කළේ “… ඔබ වින්ඩෝස් හි නොමැති නම් මෙය ගොනුව සෑදීමේ කාලය ලබා නොදෙනු ඇත”. සමාවන්න! මෙම පිළිතුර අතේ ගෙන යා නොහැකි බවත් මෙම කරුණ සඳහන් නොකරන බවත් සත්‍යයකි. (ලිනක්ස් හි නිදර්ශන ප්‍රතිදානය: pastebin.com/50r5vGBE )
ntninja

nntninja ඔයා යන්නෙ අනිත් හැමෝටම කියන්නද?
පුඩ්ල්

1
දැනටමත් වෙනත් අදහස් කිහිපයක් මෙහි දමා ඇති අතර (මෑතදී) ලිනක්ස් මත ක්‍රියා කරන පිළිතුරක් මම ඉක්මනින් පළ කරමි. නමුත් ඇත්ත වශයෙන්ම, ඔබගේ ලිපියේ ඇති එකම වැරැද්ද නම් මෙම කාරණය සඳහන් නොකරන වින්ඩෝස් පමණක් පිළිතුරයි. OP ප්‍රශ්නයේදී වින්ඩෝස් සහ ලිනක්ස් අනුකූල විසඳුමක් ඉල්ලා ඇත. එනිසා ඔබ මෙම “විස්තරය” ඉහළින් කොතැනක හෝ එකතු කළහොත් එය ඉතා ප්‍රයෝජනවත් වනු ඇතැයි මම සිතමි, එවිට මිනිසුන් විවිධ වේදිකා ඉලක්ක කර ගැනීමේදී ඔවුන් සොයන වේලාව යැයි සිතීමට නොමඟ නොයනු ඇත.
ntninja

11

os.statනම් කර ඇති ටුපල් එකක් st_mtimeසහ st_ctimeගුණාංග සමඟ ආපසු එයි . වෙනස් කිරීමේ කාලය st_mtimeවේදිකා දෙකෙහිම ඇත; අවාසනාවකට මෙන්, වින්ඩෝස් හි ctime"නිර්මාණ කාලය" යන්නෙන් අදහස් වන අතර පොසික්ස් හි එහි තේරුම "කාලය වෙනස් කිරීම" යන්නයි. POSIX වේදිකාවල නිර්මාණ කාලය ලබා ගත හැකි ක්‍රමයක් ගැන මම නොදනිමි.


ටැග්- ටුපල් ගැන වැඩි විස්තර මෙන්න: stackoverflow.com/questions/2970608/… ඒවා ටුපල් මෙන් ක්‍රියා කරයි, නමුත් dir(..)එකක් මත උත්සාහ කරන්න . උදාdir(os.stat(os.listdir('.')[0]))
එව්ගනි සර්ජිව්

2
>>> import os
>>> os.stat('feedparser.py').st_mtime
1136961142.0
>>> os.stat('feedparser.py').st_ctime
1222664012.233
>>> 

-1: වෙනත් තැනක සඳහන් කළ පරිදි, ඔබ වින්ඩෝස් හි සිටී නම් මිස, ගොනුව සෑදීමේ කාලය ඔබට ලබා නොදෙනු ඇත (පිළිතුරෙහි පවා සඳහන් නොවේ!).
ntninja

0

සංකේතාත්මක සබැඳි අනුගමනය කිරීම වැදගත් නොවේ නම්, ඔබට os.lstatබිල්ඩින් ද භාවිතා කළ හැකිය .

>>> os.lstat("2048.py")
posix.stat_result(st_mode=33188, st_ino=4172202, st_dev=16777218L, st_nlink=1, st_uid=501, st_gid=20, st_size=2078, st_atime=1423378041, st_mtime=1423377552, st_ctime=1423377553)
>>> os.lstat("2048.py").st_atime
1423378041.0

මෙය අවසන් වරට කියවීමේ කාලය ලබා දෙනු ඇත (අවම වශයෙන් යුනික්ස් මත), එය අනිවාර්යයෙන්ම ඉල්ලූ දේ නොවේ.
මාර්ක් අමරි

0

crtimeගොනු නිර්මාණය කිරීමේ වේලාවට හරස් වේදිකා ප්‍රවේශය ක්‍රියාත්මක කරන පුස්තකාලය දෙස බැලීම වටී .

from crtime import get_crtimes_in_dir

for fname, date in get_crtimes_in_dir(".", raise_on_error=True, as_epoch=False):
    print(fname, date)
    # file_a.py Mon Mar 18 20:51:18 CET 2019

1
මෙයට එරෙහිව මම තරයේ අවවාද කරමි: එය debugfsඅර්ථ දැක්වීම අනුව අස්ථායී වන ලිනක්ස් මත භාවිතා කරයි , සෑම දෙයකටම ඉහළ මට්ටමේ මූල ප්‍රවේශයක් අවශ්‍ය වන අතර සෑම අංශයකින්ම ඔබේ මව නිතරම ඔබට අනතුරු ඇඟවූ එක් කරුණක් වේ. (ඔබ ඇත්තටම මංමුලා සහගත ඉන්නේ සහ ආරක්ෂිත ඇරඹුම් තොරව පද්ධතිය මත සැබෑ ලෙසද හැඳින්වේ විය වුවහොත් සිදු එහෙත්, ඔව්, එය බොහෝ විට ක්රියා ...)
ntninja

nntninja මම බොහෝ විට නිෂ්පාදනයේදී භාවිතා නොකරනු ඇත, නමුත් එය "ගෘහස්ථ ස්ක්‍රිප්ටින්" සඳහා ප්‍රයෝජනවත් විය හැකිය.
ඩෙල්ගන්

-2

os.statනිර්මාණ කාලය ඇතුළත් වේ. එහි මූලද්‍රව්‍යය සඳහා st_anything පිළිබඳ අර්ථ දැක්වීමක් නොමැත os.stat().

එබැවින් මෙය උත්සාහ කරන්න:

os.stat('feedparser.py')[8]

Ls -lah හි ඇති ගොනුවේ ඔබ නිර්මාණය කළ දිනය සමඟ සසඳන්න

ඒවා සමාන විය යුතුය.


6
වැරදි! os.stat ('feedparser.py') [8] යන්නෙන් අදහස් කරන්නේ මැවීමේ කාලය නොව st_mtime යන්නයි. කරුණාකර ප්‍රලේඛනය වෙත යොමු වන්න: docs.python.org/library/os.html#os.stat
millerdev

4
කරුණාකර කැත අංක වෙනුවට .st_ctime භාවිතා කරන්න [8].
guettli

-3

පද්ධතියේ stat විධානය ක්‍රියාත්මක කිරීමෙන් සහ ප්‍රතිදානය විග්‍රහ කිරීමෙන් මට පොසික්ස් මත නිර්මාණ කාලය ලබා ගැනීමට හැකි විය.

commands.getoutput('stat FILENAME').split('\"')[7]

ටර්මිනල් (ඕඑස් එක්ස්) වෙතින් පයිතන්ට පිටතින් ධාවනය වන සංඛ්‍යාව ආපසු:

805306374 3382786932 -rwx------ 1 km staff 0 1098083 "Aug 29 12:02:05 2013" "Aug 29 12:02:05 2013" "Aug 29 12:02:20 2013" "Aug 27 12:35:28 2013" 61440 2150 0 testfile.txt

... මෙහි සිව්වන දිවා කාලය ගොනු නිර්මාණය වේ (වෙනත් අදහස් සටහන් කර ඇති පරිදි වේලාව වෙනස් කිරීමට වඩා).


13
-1: ෂෙල් විධානයකින් මිනිසුන් සඳහා වූ ප්‍රතිදානයක් විග්‍රහ කිරීම ඉතා නරක අදහසකි. තවද මෙම විධානය හරස් අනුකූල නොවේ.
MestreLion
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.