Python将文件模块导入到另一个
我正试图将名为log\u entry\u counts的变量从名为data\u processed.py的python文件导入名为的同一目录中的文件中,以进行一些百分比计算,但导入后,我无法访问导入模块(文件)中的变量。这是第一个文件名data_processed.py。 导入操作系统 从datetime导入datetime,timedelta 从收款进口柜台Python将文件模块导入到另一个,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我正试图将名为log\u entry\u counts的变量从名为data\u processed.py的python文件导入名为的同一目录中的文件中,以进行一些百分比计算,但导入后,我无法访问导入模块(文件)中的变量。这是第一个文件名data_processed.py。 导入操作系统 从datetime导入datetime,timedelta 从收款进口柜台 def dataCount(folderName): #count = 0 log_entry_counts = Cou
def dataCount(folderName):
#count = 0
log_entry_counts = Counter()
today_date = datetime.today()
date_ranges = [
('30 Days', today_date - timedelta(days=30)),
# ('3 months', today-date - timedelta(days=90)),
#('year', today-date - timedelta(days=365))
]
for path, dirs, files in os.walk(folderName):
for dirname in dirs:
log_date = (os.path.join(path, dirname))
for items in files:
if items != ".DS_Store":
try:
log_date = datetime.strptime(path[39:47], '%m%d%Y')
for text, dr in date_ranges:
if log_date >= dr:
log_entry_counts[text] += 1
except ValueError:
print 'This line has a problem:', log_date
total = 0
print log_entry_counts['30 Days']
def main():
filePath = 'file.txt'
hmacCount(filePath)
if __name__ == "__main__":
main()
它循环遍历一个文件夹并计算所有子文件夹中的文件数。另一个文件名failed_hmac.py如下所示
import os, sys
from datetime import datetime, timedelta
from collections import Counter
import data_processed
def hmacCount(fileName):
# Get the last failed hmac date
fileHandle = open('file.txt',"r")
lineList = fileHandle.readlines()
fileHandle.close()
lastLine = lineList[-1]
lastDate = datetime.strptime(lastLine[:10], '%m/%d/%Y')
with open(fileName) as f_input:
logEntryCounts = Counter()
#today_date = datetime.today() - timedelta(days=14)
#print today_date
dateRanges = [
('30 Days', lastDate - timedelta(days=30)),
#('3 months', lastDate - timedelta(days=90)),
#('One year', lastDate - timedelta(days=330))
]
for line in f_input:
#Stop Processing if there are no more lines
if not line:
break
if "Following hmac" in line:
try:
logDate = datetime.strptime(line[:10], '%m/%d/%Y')
for text, dr in dateRanges:
if logDate >= dr:
logEntryCounts[text] += 1
except ValueError:
print 'This line has a problem:', logDate
total = 0
hmacData = float(logEntryCounts['30 Days'])
print logEntryCounts['30 Days']
# Call The function
def main():
filePath = 'file.txt'
hmacCount(filePath)
if __name__ == "__main__":
main()
目标是将数据_processed.py导入failed_hmac.py,并使用变量logEntryCounts和log\u entry\u counts执行一些百分比计算,但我一直得到logEntryCounts未定义的错误
数据_entry\u日志
是data\u processed.py中函数内部的变量。您必须修改代码以调用函数data\u processed.dataCount()
并返回值,以便能够使用该变量
在数据处理.py
中:
def dataCount(folderName):
#your code
return log_entry_counts
在中失败的\u hmac.py
:
def dataCount(folderName):
#your code
return log_entry_counts
替换
hmacData = float(logEntryCounts['30 Days'])
与
另一种方法,我认为是更干净的方法,就是在一个类中声明这两个函数,如data\u entry\u logs
中所述,是data\u processed.py
中函数内部的一个变量。您必须修改代码以调用函数data\u processed.dataCount()
并返回值,以便能够使用该变量
在数据处理.py
中:
def dataCount(folderName):
#your code
return log_entry_counts
在中失败的\u hmac.py
:
def dataCount(folderName):
#your code
return log_entry_counts
替换
hmacData = float(logEntryCounts['30 Days'])
与
另一种方法,我认为是更干净的方法,是在一个类中声明这两个函数,如