我正在尝试使用python的“ glob”通过通配符而不是文件所在的路径来获取各种文件。
在这种情况下,我试图捕获目录中所有以file_
开头的文件。尽管将来可能会出现一些情况,我需要从目录中基于文件扩展名(i.e. all .csv and .log)
文件来获取文件。
下面的python字符串是我正在使用的字符串,它只能捕获FULL PATH以及所需的文件。我只想“遍历”文件本身,而不是“路径”>
import os
import glob
import boto3
from botocore.client import Config
ACCESS_KEY_ID = 'some_key'
ACCESS_SECRET_KEY = 'some_key'
BUCKET_NAME = 'some_bucket'
s3 = boto3.client(
's3',
aws_access_key_id=ACCESS_KEY_ID,
aws_secret_access_key=ACCESS_SECRET_KEY,
config=Config(signature_version='s3v4')
)
csv_files = glob.glob('/home/user/folder1/folder2/*.csv')
#json_files = glob.glob("/home/user/folder1/h_log_*.json")
for filename in csv_files:
print("Putting %s" % filename)
s3.upload_file(filename, BUCKET_NAME, 'new_folder' + '/' + filename)
#for filename in json_files:
# print("Putting %s" % filename)
# s3.upload_file(filename, BUCKET_NAME, filename)
print("All_Finished")
####################################################
####################################################
The string I am trying to concentrate on updating from the script preferably is below:
csv_files = glob.glob('/home/user/folder1/folder2/*.csv')
An example of a file directory containing various files and file types :
Below need to grab all files that end in `.csv`
/home/user/Desktop/folder_example/
file_1.csv
file_1.csv
file_1.csv
file_1.csv
Below need to grab all files that start with `file_`
/home/user/Desktop/folder_example/
file_2.log
file_2.csv
file_2.log
file_2.csv
我正在尝试使用python的“ glob”通过通配符而不是文件所在的路径来获取各种文件。在这种情况下,我试图捕获所有以名称file_ ...
如何使用os.path.basename
?
您可以根据分隔符glob
或'/'
分割'\'
输出,然后保留最后一部分。
由于文件夹中只有两种类型的文件,因此您可以分别读取不同类型的文件。