- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如果下载了几年的数据,这些数据存储在具有以下命名约定的文件中,year_day.dat。比如2014_1.dat这个文件里面有2014年1月1日的数据,我需要读取这些按天排序的数据文件,2014_1.dat,2014_2.dat,2014_3.dat直到年底。在文件夹中,它们按顺序列出但是当我在目录中创建文件列表时,它们被重新排序 2014_1.dat、2014_10.dat、2014_100.dat、2014_101.dat...2014.199.dat、2014_2.dat。我想我需要使用排序功能,但如何强制它按天对列出的文件进行排序,以便我可以继续处理它们?到目前为止,这是代码:
import sys, os, gzip, fileinput, collections
# Set the input/output directories
wrkDir = "C:/LJBTemp"
inDir = wrkDir + "/Input"
outDir = wrkDir + "/Output"
# here we go
inList = os.listdir(inDir) # List all the files in the 'Input' directory
print inList #print to screen reveals 2014_1.dat.gz followed by 2014_10.dat.gz NOT 2014_2.dat.gz HELP
d = {}
for fileName in inList: # Step through each input file
readFileName = inDir + "/" + fileName
with gzip.open(readFileName, 'r') as f: #call built in utility to unzip file for reading
for line in f:
city, long, lat, elev, temp = line.split() #create dictionary
d.setdefault(city, []).append(temp) #populate dictionary with city and associated temp data from each input file
collections.OrderedDict(sorted(d.items(), key=lambda d: d[0])) # QUESTION? why doesn't this work
#now collect and write to output file
outFileName = outDir + "/" + "1981_maxT.dat" #create output file in output directory with .dat extension
with open(outFileName, 'w') as f:
for city, values in d.items():
f.write('{} {}\n'.format(city, ' '.join(values)))
print "All done!!"
raw_input("Press <enter>") # this keeps the window open until you press "enter"
最佳答案
如果你不介意使用第三方库,你可以使用 natsort库,正是为这种情况而设计的。
import natsort
inList = natsort.natsorted(os.listdir(inDir))
这应该会处理所有数字排序,而不必担心细节。
您还可以使用 ns.PATH
选项使排序算法具有路径感知能力:
from natsort import natsorted, ns
inList = natsorted(os.listdir(inDir), alg=ns.PATH)
完全公开,我是 natsort
的作者。
关于python - 排序 os.listdir 文件 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21898560/
对于os库有什么区别 os.listdir('.') 与 os.listdir() 它们似乎都产生相同的结果(事件目录中所有内容的列表)但是: https://www.tutorialspoint.c
Python:我想知道listdir这个方法在哪里,因为他不在模块os.py中。在这个模块中没有方法: def listdir () 最佳答案 listdir方法实际上是在C模块中实现的,根据操作系统
在Python的文件和目录操作中,os.listdir()函数是一个非常实用的函数。它可以返回指定目录下的所有文件和文件夹的名称列表,帮助我们进行文件的遍历、搜索和批量处理等操作。本文将深入探讨os.
在 Python 2.7 上, for dir in os.listdir("E:/Library/Documents/Old - Archives/Case"): print dir 打印出来
1. os.listdir()概述 os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。 例如: ?
我需要一个函数来检查一个目录是否为空,但它应该尽可能快,因为我将它用于数千个目录,最多可以有 100k 个文件。我实现了下一个,但看起来 python3 中的 kernel32 模块有问题(我在 Fi
我的书说: Calling os.listdir(path) will return a list of filename strings for each file in the path argu
我在 Linux Ubuntu 18.04 上的 Conda 虚拟环境中使用 Python 3.6.2。 我尝试了多种方法来列出特定路径的文件和目录,但我尝试的每种方法似乎只列出目录中的文件,而不是文
我正在开发一个项目,我必须编辑大约 400 个不同文件中的几行内容。它们都在同一个文件夹中,并且每个都有唯一的名称。为了这个问题,我将它们称为fileName001.conf至fileName420.
我计划获取一个巨大的数据文件夹。该文件夹的总大小约为 2TB,包含约 200 万个文件。我需要对这些文件进行一些处理(主要是删除其中 99%)。 我预计由于数据大小会出现一些问题。特别是,我想知道 P
我编写了一个 Python 脚本,用于将给定目录中的所有文件名写到一个文件中进行处理,它在我的机器上运行良好。但是当我尝试在目标机器上运行它时,它会跳过一些文件。这是我正在使用的代码的 shell :
我正在尝试从文件中读取一行并将内容用作 os.listdir 方法的参数 f = open('test.txt', "r+") test = f.readlines() contentlist = [
这个问题在这里已经有了答案: Non-alphanumeric list order from os.listdir() (14 个答案) 关闭 4 年前。 我是 Python 的新手,我正在编写一
假设文件夹A包含以下文件: 0.jpg 1.jpg 2.jpg . . . n.jpg . . . 现在,python 脚本查看文件夹 A 并使用 for path, dirs, files in o
我在目录上执行 os.listdir(),它返回如下列表: [u'Somefile.gif', u'SomeDirectory', u'SomeJPEG.jpeg'] 你的目的是什么?在我的搜索中,我
我正在运行 Windows 7 并使用空闲解释器。 os.listdir() 没有显示我桌面上的所有文件。这是我从空闲状态运行命令时得到的输出: >>> os.listdir('C:\\Use
我试图从文件夹内的每个文件中提取特定行。我编写的代码是打开每个文件并打开新的输出文件,尽管它在每个文件中循环并在某些情况下输出数据两次。我有 15 个文件,所有文件之间大约有 800,000 行。 `
我正在编写一个 python 脚本,该脚本在 Windows 8.1 机器上安装 802.1x 证书。此脚本在 Windows 8 和 Windows XP 上运行良好(尚未在其他机器上尝试过)。 我
以下代码: def tema_get_file(): logdir='T:\\' logfiles = sorted([ f for f in os.listdir(logdir) i
在我的 windows7 64 位系统中,c:/windows/system32 文件夹中有一个名为 msconfig.exe 的文件。是的,它必须存在。 但是当我使用os.listdir 搜索文件夹
我是一名优秀的程序员,十分优秀!