Python 2.7 如何使用python确认所需文件位于特定文件夹中,并且是否可访问?
我在文件夹应用程序中有5个文件:Python 2.7 如何使用python确认所需文件位于特定文件夹中,并且是否可访问?,python-2.7,Python 2.7,我在文件夹应用程序中有5个文件: App| |--A.txt |--B.txt |--C.txt |--D.txt |--E.txt |--Run.py |--Other Folders or Files 现在我想知道文件(A.txt,B.txtC.txt,C.txt,D.txt,E.txt)是否存在,如果存在,我想调用一个函数Cleaner,它将为该函数提供这些文件的名称。我已经写了这段代码,但是什么都没有发生。函数没有被调用 import glob
App|
|--A.txt
|--B.txt
|--C.txt
|--D.txt
|--E.txt
|--Run.py
|--Other Folders or Files
现在我想知道文件(A.txt,B.txtC.txt,C.txt,D.txt,E.txt)是否存在,如果存在,我想调用一个函数Cleaner,它将为该函数提供这些文件的名称。我已经写了这段代码,但是什么都没有发生。函数没有被调用
import glob
import csv
import itertools
files = glob.glob("*.txt")
i = 0
def sublist(a, b):
seq = iter(b)
try:
for x in a:
while next(seq) != x: pass
else:
return True
except StopIteration:
pass
return False
required_files = ['Alternate_ADR6_LFB1.txt', 'Company_Code.txt', 'Left_LIFNR.txt', 'LFA1.txt', 'LFB1.TXT', 'LFBK.TXT']
if sublist(required_files,files):
for files in required_files:
try:
f = open(files , 'r')
f.close()
except IOError as e:
print 'Error opening or accessing files'
i = 1
else:
print 'Required files are not in correct folder'
if i == 1:
for files in required_files:
Cleansing(files)
def Cleansing(filename):
with open('filename', 'rb') as f_input:
...
...
break
with open('filename', 'rb') as f_input, open('filename_Cleaned.csv', 'wb') as f_output:
csv_output = csv.writer(f_output)
csv_output.writerow('something')
Upadate
我想现在我可以调用这个函数,也可以检查有效的文件,但它不是pythonic。我无法打开或创建一个文件名为文件名加上_cleaned:filename _cleaned.csv的文件。您想检查文件夹中是否有文件列表(
必需文件
)。通过
files=glob.glob(“*.txt”)
所以第一个问题是:由于顺序不重要,我们可以使用集合:
if set(required_files) <= set(files):
# do stuff
else:
#print warning
“清洗”!='清理“
…很抱歉,在这里写的时候我犯了错误,但为什么要降级我的问题,因为它不清楚,而且写得很糟糕。请阅读并提供一个。@jornsharpe已更正请删除该降级或告诉我更多错误,我将很乐意倾听:)你能告诉我如何确认这五个文件是我所需要的吗。
for filename in required_files:
Cleansing(filename)
def Cleansing(filename):
with open(filename, 'rb') as f_input, open(filename+'_Cleaned.csv', 'wb') as f_output:
#read stuff in f_input
#write stuff in f_output