在目录中创建具有特定名称的空文本文件

时间:2017-10-24 08:47:14

标签: python file

我有两个目录:

dir_img = path/to/images

dir_img

image_name.jpg中的图片名称格式为dir

我需要在image_name.txt中创建空文本文件:#include <sys/socket.h> #include <sys/types.h> #include <arpa/inet.h> #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <unistd.h> #include <fcntl.h> int main(int argc, char * arg[]){ int conn_s = socket(AF_INET, SOCK_STREAM, 0); //Create the socket struct sockaddr_in servaddr; memset(&servaddr, 0, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(1234); servaddr.sin_addr.s_addr = htonl(INADDR_ANY); int res = bind(conn_s, (struct sockaddr *) &servaddr, sizeof(servaddr)); if(res < 0){ printf("Error has occured\n"); } FILE * stream = fdopen(conn_s, "w+"); //Create a stream for the socket FILE * file = fopen("response2.txt", "w+"); //Create a file to store the output of the stream char * line = NULL; //Where each line of the stream will be stored in size_t len = 0; // The length of the line ssize_t bytes; //The size of the line in bytes int lis = listen(conn_s, SOMAXCONN); fcntl(lis, F_SETFL, O_NONBLOCK); while(1) { conn_s = accept(lis, NULL, NULL); if(conn_s < 0){ if((errno == EAGAIN) || (errno == EWOULDBLOCK)) continue; perror("Failed to accept connection"); exit(EXIT_FAILURE); } long conn_s_flags = fcntl(conn_s, F_GETFL); fcntl(conn_s, F_SETFL, conn_s_flags & ~O_NONBLOCK); while((bytes = getline(&line, &len, stream)) != -1) { printf("%s\n", line); fwrite(line, sizeof(char), bytes, file); } close(conn_s); } free(line); return 0; } ,其中我可以稍后存储与图像对应的注释。我正在使用Python。

我不知道该怎么办。任何帮助都非常感谢。感谢。

[编辑]:我尝试了here给出的答案。它运行时没有任何错误,但也没有创建任何文件。

2 个答案:

答案 0 :(得分:3)

这应该为您创建空文件,然后您可以继续。

import os
for f in os.listdir(source_dir):
    if f.endswith('.jpg'):
        file_path = os.path.join(target_dir, f.replace('.jpg', '.txt'))
        with open(file_path, "w+"):
            pass

答案 1 :(得分:1)

您可以使用模块os列出现有文件,然后只需以w+模式打开该文件,即使您没有在其中写入任何内容,也会创建该文件。别忘了关闭你的档案!

import os
for f in os.listdir(source_dir):
    if f.endswith('.jpg'):
        open(os.path.join(target_dir, f.replace('.jpg', '.txt')), 'w+').close()