Medium = Python
问题1。(主要问题)我试图逐行读取特定目录中的所有文件。但是,读取第一个文件后,第二个文件不会打开。
问题2。(已解决)输出日期作为文件名。下面的代码可以做到这一点。 (拉斐尔帮助了)
我最初编写的代码非常适合1个文件,但是,当我尝试通过提供目录路径,然后遍历所述目录中的每个文件来添加多个文件功能时,该程序只能读取其中一个文件。
1。)要尝试解决多个文件的问题,我认为也许需要清除或删除尝试重新实例化/读取新文件时创建的readlines功能列表。 (如果是这样的话,它仍然会通过初始打开的文件。)(我还最初测试了三个文件,因此测试了print(files [0]-[3])。
import os
import sys
import datetime
def main():
date_object = datetime.date.today()
dateString = date_object.strftime('%m-%d-%Y')
print(dateString)
dateString = dateString + ".txt"
print(dateString)
fileWrite = dateString
#open or create fileWrite
try:
fW = open(fileWrite, "a+")
except IOError:
print ("Did not create File: " + fileWrite)
sys.exit()
#walks through all files in folder SeperateProject/Devices
#path = 'Test path to directory here'
#path = 'C:/Users/Bosborne/Desktop/Circuits/SeparateProject/Devices'
files = os.listdir(path) # Get all the files in that directory
print("Files in '%s': %s" % (path, files))
print(files[0], files[1], files[2])
for filename in os.listdir(path):
fileRead = filename
#add in ability to Walk through device list (.txt)
#create error catches here
try:
fR = open(filename, "r")
except IOError:
print ("Could not open File: " + filename)
sys.exit()
try:
fRead = fR.readlines()
except IOError:
print ("Could not read File: " + filename)
sys.exit()
#add walk through list to DEV
DEV = filename
#show list of included devices
print(DEV)
#Tried to fix the error of not being able to open file 2
fRead.clear()
del fRead[:]
fR.close()
print("close fileRead")
fW.close()
print("close fileWrite")
return
#run main
if(__name__ == '__main__'):
main();
期望它能够打开目录中的每个文件,因为它会在检查目录中的所有文件时#检索每个文件的正确名称。 (无法打开第二个文件) 这是一些输出
PS C:\ Users \ Bosborne \ Desktop \ Circuits \ SeparateProject> python。\ TestOPEN.py
05-21-2019
05-21-2019.txt
“ C:/ Users / Bosborne / Desktop / Circuits / SeparateProject / Devices”中的文件: ['001p01.txt','001p02.txt','001p03.txt']
001p01.txt 001p02.txt 001p03.txt
001p01txt
关闭fileRead
无法打开文件:001p02.txt
PS C:\ Users \ Bosborne \ Desktop \ Circuits \ SeparateProject>
答案 0 :(得分:0)
我知道了。我试图打开/读取每个文件,就像它们在cwd中一样,而不是在open语句中执行os.path.join。
fR = open(os.path.join(path,filename),“ r”)