此问题已在此处有答案:
Extract file name from path, no matter what the os/path format(22答案)
上个月关门了。
我有以下代码:
os.listdir("staging")
# Seperate filename from extension
sep = os.sep
# Change the casing
for n in os.listdir("staging"):
print(n)
if os.path.isfile("staging" + sep + n):
filename_one, extension = os.path.splitext(n)
os.rename("staging" + sep + n, "staging" + sep + filename_one.lower() + extension)
# Show the new file names
print ('\n--------------------------------\n')
for n in os.listdir("staging"):
print (n)
# Remove the blanks, -, %, and /
for n in os.listdir("staging"):
print (n)
if os.path.isfile("staging" + sep + n):
filename_zero, extension = os.path.splitext(n)
os.rename("staging" + sep + n , "staging" + sep + filename_zero.replace(' ','_').replace('-','_').replace('%','pct').replace('/','_') + extension)
# Show the new file names
print ('\n--------------------------------\n')
for n in os.listdir("staging"):
print (n)
"""
In order to fix all of the column headers and to solve the encoding issues and remove nulls,
first read in all of the CSV's to python as dataframes, then make changes and rewrite the old files
"""
import os
import glob
import pandas as pd
files = glob.glob(os.path.join("staging" + "/*.csv"))
print(files)
# Create an empty dictionary to hold the dataframes from csvs
dict_ = {}
# Write the files into the dictionary
for file in files:
dict_[file] = pd.read_csv(file, header = 0, dtype = str, encoding = 'cp1252').fillna('')
在字典中, Dataframe 被命名为“folder/name(csv)”,我想做的是从字典中的键中删除前缀“staging/”。
我该怎么做?
5条答案
按热度按时间ssm49v7z1#
如果你想做的只是将文件路径截断为文件名,你可以使用
os.path.basename
:示例:
ni65a41a2#
6xfqseft3#
这个article对我来说很好
希望它能帮助寻找这个答案的人
92dk7w1h4#
在python标准库中使用pathlib,与截断文件路径的方法相同。它将把路径变成一个易于使用的类。
jw5wzhpr5#
正如ColdSpeed所说,你可以使用“os.path.basename”来截断文件到它的名字,但我认为你所指的是pycache数据的能力?
下面是我的目录:
看到pycache文件夹了吗?将其初始化为模块。然后,您可以从该模块导入一个文件(例如staging.txt文件并对其进行操作。)
我从资产文件夹级别(或应该是)使用IpConfig.txt文件,并从中取出一行信息。