如何从文件路径中提取文件名?
我有以下代码:如何从文件路径中提取文件名?
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('')
在词典中,dataframes被命名为“文件夹/名称(CSV)”我希望做的是从键删除前缀“分期/”词典。
我该怎么做?
如果你想要做的是截断的文件路径,只是文件名,你可以使用os.path.basename
:
for file in files:
fname = os.path.basename(file)
dict_[fname] = pd.read_csv(file, header = 0, dtype = str, encoding = 'cp1252').fillna('')
例子:
In [465]: os.path.basename('Desktop/test.txt')
Out[465]: 'test.txt'
正如ColdSpeed说,你可以使用“操作系统.path.basename“截断文件到它的名字,但我认为你所指的是pycache数据的能力?
你看pycache文件夹?将其初始化为一个模块。 然后,您可以从该模块导入文件(例如staging.txt文件并对其进行操作)。 我使用资产文件夹级别(或应该是)的IpConfig.txt文件,并占用一行信息。
import pygame as pyg
import sys
import os
import math
import ssl
import socket as sock
import ipaddress as ipad
import threading
import random
print("Modules Installed!")
class two:
# Find out how to refer to class super construct
def main(Display, SecSock, ipadd, clock):
# I have code here that has nothing to do with the question...
def __init__():
print("Initializing[2]...")
# Initialization of Pygame and SSL Socket goes here
searchQuery = open("IpConfig.txt", 'r') #Opening the File IpConfig(Which now should open on the top level of the game files)
step2 = searchQuery.readlines()# read the file
ipadd = step2[6] # This is what you should have or something similar where you reference the line you want to copy or manipulate.
main(gameDisplay, SSLSock, ipadd, clock)# Im having issues here myself - (main() is not defined it says)
print(ipadd)
print("Server Certificate Configuration Enabled...")
__init__() # Start up the procedure
感谢您的详细回应,但@COLDSPEED得到它的权利,我需要做的只是截断文件名插入到数据库 – zsad512
我只是澄清你将如何去阅读该数据库。 – JerryPlayz101
这article在这里工作了就好了,我
import os
inputFilepath = 'path/to/file/foobar.txt'
filename_w_ext = os.path.basename(inputFilepath)
filename, file_extension = os.path.splitext(filename_w_ext)
#filename = foobar
#file_extension = .txt
path, filename = os.path.split(path/to/file/foobar.txt)
# path = path/to/file
# filename = foobar.txt
希望它可以帮助别人寻找这个答案
@COLDSPEED,我不知道如何执行你的suggestion-我有61键在字典中,他们被标记为“staging /文件名”我想将键改为“文件名” - 我试着用files = glob.glob(os.path.join(“staging”+“/ * .csv“)) print(files) 对于文件中的文件: file = os.path.basename(file) print(files) – zsad512
请看如何提供[mcve]。 –