在执行程序之前先检测文件是否存在

2024-09-30 05:22:37 发布

您现在位置:Python中文网/ 问答频道 /正文

如何检查文件是否存在,例如trend.log是否存在,因此执行程序,否则再次循环

这是我的程序,如果trendx.log出现在我的路径中,我想执行:

logtext = "trendx.log"
#Log data into dataframe using genfromtxt
logdata = np.genfromtxt(logtext + ".txt",invalid_raise = False,dtype=str, comments=None,usecols=np.arange(16))
logframe = pd.DataFrame(logdata)
#print (logframe.head())

#Dataframe trimmed to use only SHA1, PRG and IP
df2=(logframe[[10,11]]).rename(columns={10:'SHA-1', 11: 'DESC'})
#print (df2.head())

#sha1_vsdt data into dataframe using read_csv
df1=pd.read_csv("sha1_vsdt.csv",delimiter=",",error_bad_lines=False,engine = 'python',quoting=3)
#Using merge to compare the two CSV

df = pd.merge(df1, df2, on='SHA-1', how='left').fillna('undetected')
df1['DESC'] = df['DESC'].values

df1.to_csv("sha1_vsdt.csv",index=False)

Tags: csvtologfalsedatasha1descpd
3条回答

可以使用os.path.isfile检查文件是否存在。您可以在while循环中循环,直到文件不存在,然后在循环之后执行代码

import os

logtext = "trendx.log"
while not os.path.isfile(logtext):
    pass


#Log data into dataframe using genfromtxt
logdata = np.genfromtxt(logtext + ".txt",invalid_raise = False,dtype=str, comments=None,usecols=np.arange(16))
logframe = pd.DataFrame(logdata)
#print (logframe.head())

#Dataframe trimmed to use only SHA1, PRG and IP
df2=(logframe[[10,11]]).rename(columns={10:'SHA-1', 11: 'DESC'})
#print (df2.head())

#sha1_vsdt data into dataframe using read_csv
df1=pd.read_csv("sha1_vsdt.csv",delimiter=",",error_bad_lines=False,engine = 'python',quoting=3)
#Using merge to compare the two CSV

df = pd.merge(df1, df2, on='SHA-1', how='left').fillna('undetected')
df1['DESC'] = df['DESC'].values

df1.to_csv("sha1_vsdt.csv",index=False)
import os
if os.path.isfile("trendx.log"):
    pass
    # File exists
else: 
    pass
    # File doesn't exist

使用os.path模块怎么样

from os import path
if path.exists(my_filepath):
    execute_my_program()

您可以添加睡眠:

from os import path
from time import sleep

def wait_and_process_file(filepath, wait_interval=5, max_time=3600):
    total_time = 0
    while total_time < max_time and not path.exists(filepath):
         sleep(wait_interval)
         total_time += wait_interval

    _finish_processing(filepath)

相关问题 更多 >

    热门问题