我只是想在我的for
循环周围添加一个计数器,以根据包含'VCCS
'的限定数来计算目录中有多少文件...该逻辑适用于迭代,因为它遍历我的目录需要访问文件的次数...但是我的计数器一直在报告1.相关行是files_in_directory
市场,注释为# here
。
我在PyLint中收到此警告:在files_in_directory" doesn't conform to UPPER_CASE naming stylepylint(invalid-name)
上的常量名称“ files_in_directory = 0
我试过将set 0移到for上方,然后尝试任何想法吗?
if __name__ == "__main__":
try:
currentDT = datetime.datetime.now()
files_in_directory = 0 # here
for filename in os.listdir(config.DIRECTORY_LOCATION):
if filename.__contains__('VCCS'):
old_stdout = sys.stdout
log_file = open("./logs/metrics.log","w")
sys.stdout = log_file
files_in_directory += 1 # here
PENDING_RECORDS = FindPendingRecords().get_excel_data()
# Do operations on PENDING_RECORDS
# Reads excel to map data from excel to vital
MAP_DATA = FindPendingRecords().get_mapping_data()
# Configures Driver
VITAL_ENTRY = VitalEntry()
# Start chrome and navigate to vital website
VITAL_ENTRY.instantiate_chrome()
# Begin processing Records
VITAL_ENTRY.process_records(PENDING_RECORDS, MAP_DATA)
print(f"Date: ")
print (str(currentDT))
print(f"Files in Directory #{files_in_directory}") # here
sys.stdout = old_stdout
log_file.close()
except Exception as exc:
# print(exc)
raise
答案 0 :(得分:2)
您所提出的问题不是MCVE。为了使其更简洁并确定确切原因:
import os
if __name__ == "__main__":
# Remove try block, just let it raise an error
my_counter = 0
for file in os.listdir("some_directory"):
# you don't need to call the __contains__ method
# as the 'in' keyword will invoke that for you
if "VCCS" in file:
# increment your counter first
my_counter += 1
print(file, my_counter)
现在毫无疑问,my_counter
正在被修改,这将在柜台旁打印出您正在查看的文件。
一旦您消除了这种行为,就可以开始添加其他功能
import os
if __name__ == "__main__":
# Remove try block, just let it raise an error
my_counter = 0
for file in os.listdir("some_directory"):
if 'VCCS' in file:
my_counter += 1
print(my_counter, file)
# Add functions back in one by one
PENDING_RECORDS = FindPendingRecords().get_excel_data()
继续此过程,直到您确定引起问题的原因是 。就目前而言,我看不到任何可能覆盖该计数器变量的明确信息,因此我怀疑A)您发布的代码 not 不能反映正在运行的内容,或者B)您正在修改/ reset files_in_directory
在模块中的其他位置。
我建议您从模块中添加其他代码以查看发生了什么。这样,我们就可以更清楚地了解代码运行时发生的情况
答案 1 :(得分:-2)
那么第一件事:您确定要传递正确的目录,并且该目录中确实包含一个以上文件,这些文件的名称中包含VCCS吗?
我还将尝试在没有Try / Except块的情况下运行此代码,以查看在第一次递增之后是否没有出现任何错误。
LMK您能得到什么,希望对您有所帮助。