错误:没有这样的文件或目录:'satu.txt'

时间:2016-06-16 01:42:02

标签: python

我想读取文件夹中的多个文本文件。我使用os.listdir()来获取我的文件夹中的每个文件。我正在使用open来读取文本文件并写入以写入文件。但是,当我运行代码时出现错误。 在这里,我附上了代码。

import os
infilename = os.listdir("C:\Python27\input") 
for filename in infilename:
    f = open(filename, "r")
    data = f.read()
    f.close()

4 个答案:

答案 0 :(得分:2)

除非您的python脚本位于同一目录中,否则您将收到此错误。

您需要引用文件的完整路径,而不仅仅是文件名。

import os

indir = "C:\Python27\input"

for filename in os.listdir(indir):
    fullpath = os.path.join(indir,filename)
    with open(fullpath, "r") as f:
        data = f.read()

答案 1 :(得分:0)

这里的问题是os.listdir只返回该目录中的文件,只返回名称。您必须在文件名前面添加路径才能工作。

import os
import sys

drive = os.path.splitdrive(sys.executable)[0]
drive = os.path.join(drive, "Python27")
drive = os.path.join(drive, "input")
infilename = os.listdir(drive)
for filename in infilename:
    f = open(os.path.join(drive, filename), "r")
    data = f.read()
    f.close()

答案 2 :(得分:0)

os.listdir将仅返回文件名,您需要将文件名与目录名组合,以便open找到它:

import os

infilename = os.listdir(r'C:\Python27\input')
for filename in infilename:
    f = open(os.path.join(r'C:\Python27\input', filename), 'r')
    data = f.read()
    f.close()

如果您在字符串中使用\,则应使用原始字符串,因此\n等字符按字面意思采用而不会被解释;字符串开头的r'将其标记为原始字符串(因此Python从字面上理解)。

答案 3 :(得分:0)

import os
path = "C:\\Python27\\input"
infilename = os.listdir(path) 
for filename in infilename:
    print(path + "\\"+ filename)
    f = open(path + "\\" + filename, "r")
    data = f.read()
    f.close()