Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python将文件模块导入到另一个_Python_Python 2.7_Python 3.x - Fatal编程技术网

Python将文件模块导入到另一个

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

我正试图将名为log\u entry\u counts的变量从名为data\u processed.py的python文件导入名为的同一目录中的文件中,以进行一些百分比计算,但导入后,我无法访问导入模块(文件)中的变量。这是第一个文件名data_processed.py。 导入操作系统 从datetime导入datetime,timedelta 从收款进口柜台

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,并使用变量logEntryCountslog\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'])


另一种方法,我认为是更干净的方法,是在一个类中声明这两个函数,如