2015-12-02 52 views
1

我有一个文本文件,包含几百个文本文件,我想打开它,写入/剪切文件并保存为新名称。从python中的文件路径列表加载文件

我一直在谷歌搜索如何做到这一点,发现模块glob,但我无法弄清楚如何使用它。

你们可以指点我正确的方向吗?

+0

试一下:https://docs.python.org/2/library/glob.html –

+0

感谢。当然,我看到了这个页面,但是对于我来说并不那么直截了当,我可以如何使用它。 – user90465

回答

1

如果你有特定的文件路径,你将不需要glob模块。当你想使用像/user/home/someone/pictures/*.jpg这样的路径时,glob模块很有用。从我的理解你有一个正常路径的文件。

您可以使用此代码作为开始:

with open('file_with_paths', 'r') as paths_list: 
    for file_path in paths_list: 
     with open(file_path, 'r') as file: 
      # Do what you want with one of the files here. 
+0

这很好,很清楚!谢谢!但由于原因python不能找到这些文件:'没有这样的文件或目录'。当第一个文件(P10088)位于我的工作目录中时,你认为这些文件路径的格式是否正确? P10088/10088-01-07-02/pca/SE1_5a0e110-5a0e6a1.evt – user90465

+0

这一切都取决于你当前的工作目录。如果'file_with_paths'中的路径与您运行python script.py的目录相关,那么它应该是正确的。你可以用'os.getcwd()'检查你当前的工作目录,你可以用'os.chdir()'来改变它。检查这些目录是否符合你的期望。 – Maciek

+0

如果给定文件的非绝对路径,“open”函数会尝试通过将os.getcwd()的结果与作为参数给出的结果相结合来打开文件。这就是为什么确保'os.getcwd()+'/'+ file_path'有意义的原因。 – Maciek

1

您只需通过遍历行的文件行,然后拿出你从这个名字所希望的。稍后保存/创建它。下面的示例代码可以帮助

with open('file_name') as f: 
    for file_path in f: 
     import os 
     file_name = os.path.basename(file_path) 
     absolute path = os.path.dirname(file_path) 
     # change whatever you want to with above two and save the file 
     # os.makedirs to create directry 
     # os.open() in write mode to create the file 

让我知道,如果它可以帮助你

+0

谢谢!你可能会更多地了解它吗?对我来说,什么是什么,以及如何遍历文件并改变它们并不是很明显。 – user90465