Mac上的Python的os.path.getctime(以及一般的Unix下)没有给出创建文件的日期,而是"最后一次更改的时间"(至少根据文档).另一方面,在Finder中,我可以看到真正的文件创建时间,因此这些信息由HFS +保存.
您对如何在Python程序中获取Mac上的文件创建时间有什么建议吗?
这既是一个挑战,也是一个问题:
我有一个数据文件夹.我想要以下信息列表列表:
Filename: Created: Last modified:
Information =
[
[datafile1, Mon Mar 04 10:45:24 2013, Tue Mar 05 12:05:09 2013],
[datafile2, Mon Mar 04 11:23:02 2013, Tue Apr 09 10:57:55 2013],
[datafile2.1, Mon Mar 04 11:37:21 2013, Tue Apr 02 15:35:58 2013],
[datafile3, Mon Mar 04 15:36:13 2013, Thu Apr 18 15:03:25 2013],
[datafile4, Mon Mar 11 09:20:08 2013, Mon May 13 16:30:59 2013]
]
Run Code Online (Sandbox Code Playgroud)
我有信息后可以自己分类.有人可以写这个功能:
def get_information(directory):
.
.
.
return Information
Run Code Online (Sandbox Code Playgroud)
这些帖子很有用:
2) 按日期排序文件
我有一个每天运行的 Python 程序。我使用loggingFileHandler 模块将日志写入文件。我希望每次运行的日志都位于其自己的带有时间戳的文件中。但是,我想删除旧文件(例如 > 3 个月)以避免填满磁盘。
我查看了 RotatingFileHandler 和 TimedRotatingFileHandler,但我不希望单次运行的日志被分割到多个文件中,即使单次运行需要几天时间。有内置方法吗?
我需要获取文件信息(路径、大小、日期等)并将其保存在 txt 中,但我不知道在哪里或如何执行此操作。
这就是我所拥有的:
ruta = "FolderPath"
os.listdir(path=ruta)
miArchivo = open("TxtPath","w")
def getListOfFiles(ruta):
listOfFile = os.listdir(ruta)
allFiles = list()
for entry in listOfFile:
fullPath = os.path.join(ruta, entry)
if os.path.isdir(fullPath):
allFiles = allFiles + getListOfFiles(fullPath)
else:
allFiles.append(fullPath)
return allFiles
listOfFiles = getListOfFiles(ruta)
for elem in listOfFiles:
print(elem)
print("\n")
miArchivo.write("%s\n" % (elem))
miArchivo.close()
Run Code Online (Sandbox Code Playgroud)
我想要的是:V:\1111111\222222222\333333333\444444444\5555555555\66666666\Folder\文件名--大小--修改日期等等
我想获取目录的最后修改日期和时间.在这样做时,我想包括子目录的最后修改日期.
我可以找到一些与这个问题相关的主题.(如何在Python中获取文件创建和修改日期/时间?)但所有这些只是给出根目录的最后修改时间而不考虑子目录.
import os.path, time
print "last modified: %s" % time.ctime(os.path.getmtime(file))
print "created: %s" % time.ctime(os.path.getctime(file))
Run Code Online (Sandbox Code Playgroud)
这些代码行只是给出了根目录的最后修改时间,而没有考虑子目录.请帮帮我.
我想知道如何检查文件夹下特定文件的更改。我发现看门狗模块可以检查文件夹中文件的更改,但我只需要 1 个文件(具有固定名称)。
请对此提供帮助,谢谢。
class MyHandler(FileModifiedEvent):
def on_modified(self, event):
if __name__ == "__main__":
integrity_file_path = DATASTORE_DIRECTORY_PATH + '/schedule.xml'
event_handler = MyHandler()
observer = Observer()
observer.schedule(MyHandler(), path=integrity_file_path,recursive=True)
observer.start()
try:
while True:
time.sleep(5)
except KeyboardInterrupt:
observer.stop()
observer.join()
Run Code Online (Sandbox Code Playgroud) 我看过一些帖子要删除特定文件夹中的所有文件(不是文件夹),但我根本就不理解它们.
我需要使用UNC路径并删除所有超过7天的文件.
Mypath = \\files\data\APIArchiveFolder\
Run Code Online (Sandbox Code Playgroud)
有人有快速脚本,他们可以专门输入上面的路径,将删除超过7天的所有文件?
我在ubuntu中使用scapy和python.我想问一下是否有人会知道如何编写示例代码:
假设我有两个文本文件在脚本运行时写入然后我想检查文件是否超过示例500bytes,如果它然后它将存储文件中的任何内容并创建一个新的文本文件来编写.(output1.txt,output2.txt等..)
如果任何专业知识有帮助,将不胜感激.谢谢
我的部分代码是:
file = open("output.txt","w")
def example(p):
if p.haslayer(Dot11Beacon):
if p.addr2 not in uniqueAP:
file.writelines(p.addr2 + "\n")
Run Code Online (Sandbox Code Playgroud)
因此,当脚本在终端中运行时,它会将其写入名为output.txt的文件中,但我想改进脚本以检查文本文件的文件大小,如果超过它将停止写入当前并创建一个新的output2.txt例如并继续.
我设置了 Python 来创建并打开一个 txt 文件 [请参阅在 Python 中使用默认应用程序打开文档],然后我手动对其进行一些更改并关闭。完成后,我希望 Python 打开下一个 txt 文件。我目前已经进行了这样的设置,以便 python 等待我在关闭文件后键入的键命令,并在该键上打开下一个命令供我编辑。
有没有办法让Python在前一个文档关闭后立即打开下一个文档(即跳过让Python等待按键被单击)。...我将重复此任务大约 100,000 次,因此每一分之一秒的点击都会很快累积起来。我基本上想摆脱与 python 的交互,只是让下一个 txt 文件在前一个 txt 文件关闭后自动出现。
我不知道如何做到这一点,但正在思考等待直到先前的文件关闭(不确定是否有办法让 python 能够判断文件是否打开/关闭)。
作为参考,我使用的是 python2.7 和 Windows。
我正在尝试创建一种方法,仅当文件比已下载到我的计算机的版本最新时,才允许我从服务器下载文件(使用 HTTP)。
我找到了一种方法来获取上次在服务器上修改文件的时间(至少是服务器认为它被修改的最后一次):
u = urllib2.urlopen(url)
meta = u.info()
print("Last Modified: " + str(meta.getheaders("Last-Modified")))
Run Code Online (Sandbox Code Playgroud)
现在的问题是如何使用此信息与我计算机上已有的文件进行比较,并查看服务器上的版本是否比我计算机上保存的版本新。
我尝试使用python-wget图书馆;然而,它没有帮助。它正在下载所有内容,甚至没有覆盖文件(它正在创建新文件),所以我意识到该库不检查时间戳。
解决这个问题的最佳方法是什么?