Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从文件路径中提取文件名?_Python - Fatal编程技术网

Python 如何从文件路径中提取文件名?

Python 如何从文件路径中提取文件名?,python,Python,我有以下代码: 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.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('')
在字典中,数据帧被命名为“folder/name(csv)”,我想做的是从字典中的键中删除前缀“staging/”


如何执行此操作?

如果您只想将文件路径截断为文件名,则可以使用:

例如:

os.path.basename('Desktop/test.txt')
# 'test.txt'

正如ColdSpeed所说,您可以使用“os.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
这对我来说很好

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做对了,我所需要做的就是截断文件名以插入数据库。我只是想说明如何读取该数据库。
import os
pathname ='c:\\hello\\dickins\\myfile.py'
head, tail = os.path.split(pathname)
print head
print tail
import os
pathname ='c:\\hello\\dickins\\myfile.py'
head, tail = os.path.split(pathname)
print head
print tail